Enhanced wireless handset, including direct handset-to-handset communication mode

ABSTRACT

A wireless handset is provided with enhanced features and capabilities. The wireless handset may be embodied as a full-featured handset that is capable of operating either within a wireless network (such as a cellular or PCS network) or in a direct handset-to-handset communication mode that is independent of the wireless network. Alternatively, the wireless handset may be embodied as a special purpose handset, that is capable of simply operating in a direct handset-to-handset communication mode. The wireless handset may additionally include features for supporting and enhancing direct communication between handsets. Such features may include a find feature that permits a user to determine which objects, including other wireless handset users, are located within a predetermined operating range of the wireless handset. A memorize feature may also be provided to permit handsets and other objects exchange information by wireless transmission.

CROSS REFERENCE TO RELATED APPLICATION

This is a continuation of U.S. patent application Ser. No. 13/724,452,filed on Dec. 21, 2012, which is a continuation of U.S. patentapplication Ser. No. 13/347,462, filed on Jan. 10, 2012, which is acontinuation of U.S. patent application Ser. No. 13/230,458, filed onSep. 12, 2011, which is a continuation of U.S. patent application Ser.No. 13/014,065, filed on Jan. 26, 2011, which is a continuation ofpatent application Ser. No. 12/659,684, filed on Mar. 17, 2010 which isa continuation of U.S. patent application Ser. No. 10/838,112, filed onMay 3, 2004, which is a continuation of U.S. patent application Ser. No.09/968,856, filed on Oct. 3, 2001, which is a divisional application ofU.S. patent application Ser. No. 09/094,600 filed on Jun. 15, 1998, thecontents of all of which are expressly incorporated herein by referencein their entity.

BACKGROUND OF INVENTION

The present invention generally relates to the field of communicationsand the use of wireless handsets. More particularly, the presentinvention relates to wireless handsets with enhanced functionality,including the ability to operate within a wireless network and in adirect handset-to-handset communication mode.

ACRONYMS

The written description provided herein contains acronyms which referto, for example, various communication services, components andtechniques, as well as features relating to the present invention.Although some of these acronyms are known, use of these acronyms is notstrictly standardized in the art. For purposes of the writtendescription herein, acronyms will be defined as follows:

Citizens Band (CB)

Complimentary Metal Oxide Semiconductor (CMOS)

Customer Premise Equipment (CPE)

Electronically Erasable Programmable Read Only Memory (EEPROM)

Federal Communications Commission (FCC)

Group System for Mobile Communications (GSM)

Interim Standard (IS)

Liquid Crystal Display (LCD)

Mobile Identification Number (MIN)

Mobile Switching Center (MSC)

Mobile Telephone Switching Office (MTSO)

Number Assignment Module (NAM)

Personal Access Communication System (PACS)

Personal Communications Network (PCN)

Personal Communications Services (PCS)

Personal Handyphone Systems (PHS)

Public Land Mobile Network (PLMN)

Plain Old Telephone Service (POTS)

Public Switched Telephone Network (PSTN)

Random Access Memory (RAM)

System Access List (SAL)

Supervisory Audio Tone (SAT)

System Identification Code (SID)

Subscriber Identity Module (SIM)

System Operator Code (SOC)

Signal Strength (SS)

Transmission Control Protocol/Internet Protocol (TCP/IP)

Time Division Multiple Access (TDMA)

BACKGROUND AND MATERIAL INFORMATION

Traditionally, wireless handsets have been provided to facilitate mobilecommunications. Such handsets are typically assigned a unique wirelessor mobile identification number. By dialing the number assigned to thehandset, a user may attempt to access a wireless handset user throughthe wireless network infrastructure. The wireless network may facilitatecommunications between two mobile wireless handset users, or between auser located at a fixed location (such as, for example, a Plain OldTelephone Service (POTS) station location) and a wireless handset user.In addition, the wireless network may comprise a cellular network or amobile telephone network to facilitate communication.

Wireless networks enable mobile station users to roam over largegeographic areas while maintaining immediate access to communicationservices. Mobile station users often carry their handsets or have theminstalled in their vehicle(s). Mobile stations comprising cellulartelephones or wireless handsets may be operable in cooperation withcellular or Personal Communications Services (PCS) communicationssystems. Cellular communication systems typically provide service to ageographic area by dividing the area into many smaller areas or cells.Each cell is serviced by a radio transceiver (i.e., atransmitter-receiver base station or cell site). The cell sites or basestations may be connected to Mobile Telephone Switching Offices (MTSOs)or Mobile Switching Centers (MSCs) through landlines and/or othercommunication links. The MSCs may, in turn, be connected via landlinesto the Public Switched Telephone Network (PSTN).

FIG. 1 illustrates the main components of a conventional cellularnetwork. As shown in FIG. 1, a wireless handset 38 may place or receivecalls by communicating with a cell site 30 or a cell site 40, dependingupon the location of the wireless handset and the cell coverage areathat is provided by each cell site (i.e., cell coverage area 35 of cellsite 30 or cell coverage area 45 of cell site 40). For purposes ofillustration, wireless handset 38 is depicted in FIG. 1 as being able tocommunicate with either cell site 30 or, cell site 40, even though thewireless handset is not illustrated as being located within cellcoverage area 35 or cell coverage area 45. Under normal operatingconditions, the extent to which wireless handset 38 will be able tocommunicate with cell site 30 or cell site 40 will depend on thegeographic location of the wireless handset and the size of the cellcoverage area of each cell site. Further, although only two cell sitesare depicted in FIG. 1, the entire cellular network may include, forexample, more than two cell sites. In addition, more than one cell sitemay be connected to each MSC and more than one wireless handset 38 maybe operating within each cell site.

Wireless handset 38 may include a conventional cellular telephone unitwith a transceiver and antenna (not shown) to communicate by, forexample, radio waves with cell sites 30 and 40. Various air-interfacetechnologies may be implemented to facilitate communication between eachwireless handset and the cell sites. Cell sites 30 and 40 may bothinclude a radio transceiver (not shown) and be connected by landlines 16or other communication links to MSCs 24, 28. A PSTN 12 is also connectedto each of the MSCs 24, 28 by landline 16 or other communication links.PSTN 12 may also be connected to fixed Customer Premise Equipment (CPE)6 (which may include telephone equipment) by communication or trunkedlines 10.

The MSCs 24, 28 may be conventional digital telephone exchanges thatcontrol the switching between PSTN 12 and the cell sites 30 and 40 toprovide wireline-to-mobile, mobile-to-wireline and mobile-to-mobile callconnectivity. Each MSC may perform various functions, including: (i)processing mobile station status data received from the cell sitecontrollers; (ii) handling and switching calls between cells; (iii)processing diagnostic information; and (iv) compiling billinginformation. The transceiver (not shown) of each cell site 30 and 40provides communications, such as voice and data, with each wirelesshandset 38 while it is present in its geographic domain. The MSCs 24, 28may track and switch wireless handset 38 from cell site to cell site, asthe wireless handset passes through various coverage areas. Whenwireless handset 38 passes from one cell to another cell, the MSC of thecorresponding cell may perform a “hand-off” that allows the wirelesshandset to be continuously serviced.

In the current North American cellular system, any given area may beserviced by up to two competing service providers of cellular airtimecommunication services. By Federal Communications Commission (FCC)regulations, the two competing cellular service providers are assigneddifferent groups of frequencies within the 800-900 MHZ region throughwhich services are provided. A frequency set typically includes controlchannels and voice channels. The control channels are used forpreliminary communications between a mobile station and a cell site forsetting up a call, after which a voice channel is assigned for themobile station's use on that call. The assigned frequency sets aregenerally referred to as “A band frequencies” and “B band frequencies”.Typically, the A band frequencies are reserved for non-wireline serviceproviders, while the B band frequencies are reserved for wirelineservice providers. While each frequency set for a given cellular servicearea is assigned to only one service provider, in different serviceareas the same frequency set may be assigned to different serviceproviders or companies. Cellular service providers often charge usagefees for airtime since they have to purchase or license the wirelessbandwidth over which cellular calls take place, and because they have tomaintain their wireless network. The FCC, however, has also designatedunlicensed bands in Northern America which do not require a license tooperate on if the transmit power is sufficiently low. For example, the902-928 MHZ Industrial, Scientific and Medical band is unlicensed in theUnited States. This band is commonly used for home cordless telephonesand is well suited for voice communications at limited distances.

Depending upon which cellular service provider is subscribed to by theuser of the wireless handset, the home frequency set of the user maycorrespond to the A frequency band or the B frequency band. Whenever acall is placed by the mobile station or wireless handset, the unit willordinarily attempt to use the home frequency set to establish the call.If a call is handled outside of the user's home network area, then theunit is said to be “roaming” and service will be attempted through afrequency set of the preferred service provider in that area. Typically,the user's home service provider will have a roaming agreement orreciprocal billing arrangement with the non-home service provider topermit service to be extended to the user's wireless unit when it isroaming in the non-home service provider's service area.

The wireless handset may include a memory device, such as a numberassignment module (NAM), in which an assigned phone number (MIN) and asystem identification code (SID) is stored to uniquely identify the homeservice provider for the unit. In addition, the wireless handset maystore a unique Electronic Serial Number (ESN) that is assigned to thewireless handset. In the North American cellular system, each cellularmarket or provider is assigned a distinct, fifteen bit SID. In Europe,on the other hand, the Global System for Mobile Communications (GSM)standard (see, for example, Recommendation GSM 02.11, ServiceAccessibility, European Telecommunications Standards Institute, 1992)defines a process for network selection based on the wireless handsetreading the GSM equivalent of the SID, called the Public Land MobileNetwork (PLMN) identity. The SID or equivalent system identificationnumber is broadcast by each service provider or cellular provider and isused by the wireless handset to determine whether or not the wirelesshandset is operating in its home network or if it is operating in aroaming condition. The wireless handset makes this determination byreading the SID that is broadcast in the cellular market in which it islocated, and comparing it to the home SID stored in the NAM of thecellular phone unit. If the SIDs do not match, then the wireless handsetis roaming, and the mobile station must attempt to gain service througha non-home service provider. Due to the imposition of a fixed surchargeor higher per unit rate, the airtime charges when the mobile station isroaming are customarily higher than when it is operating within its homenetwork.

When a wireless handset is switched ON, the handset scans the group ofcontrol channels to determine the strongest cell site or base stationsignal. Control channels are primarily involved in setting up a call andmoving it to an unused voice channel. When a telephone call is placed, asignal is sent to the cell site or base station. The MSC usuallydispatches the request to all base stations in the cellular system. TheMIN which is assigned as the phone number to the wireless handset isthen broadcast as a paging message throughout the cellular system. Whenthe wireless handset receives the page, the handset identifies itself tothe base station it received the page from (usually the strongest basestation) and informs the MSC of the “handshake”. The MSC then instructsthe base station to move the call to an unused channel. As noted above,the MSC may also provide access to the PSTN once a channel isestablished.

Operation under a roaming condition is often under the control of thewireless handset user. The user can select whether the mobile stationwill operate in a Home System Only, A Band Only, B Band Only, A BandPreferred, or B Band Preferred operating mode. The user typicallycontrols the system preference and mode operation through menu choice orselection. This current method of roaming control is conventionallyknown as “Preferred System Selection”. In the most common roamingsituation, the wireless handset remains on the same band as the homecellular network. That is, if the wireless handset is homed to acellular network with an odd numbered SID (which is normally assigned toan A band cellular service provider), then the wireless handset willobtain service from the A band cellular service provider when roaming.

In addition to conventional cellular network systems, PersonalCommunications Services (PCS) systems are also available. PCS covers abroad range of individualized communication services. However, providingcellular or PCS services is costly. To recover these costs, a subscriberis normally required to pay a monthly fee and additional fees may becharged for time spent talking on the wireless handset (often referredto as airtime). Some service plans may give a subscriber a certainnumber of minutes of airtime free per month and then charge for everyminute over that allotment. Other, plans may charge for every minutespent using the wireless handset. In addition, the subscriber is oftenrequired to purchase the wireless handset or sign a multi-year servicecontract. Additional charges may also be incurred for service features(such as voice mail) or using the wireless handset in other servicemarkets. Roaming charges can be costly, especially where preferredroaming carriers are not available.

Forms of wireless or mobile communication that do not incur these feesare also available. For example, cordless phone systems, land mobileradio systems, CB radios and walkie-talkies are available. Cordlessphone technologies are often utilized in home or office environments andoperate over unlicensed bands to provide wireless or cordless phonecapabilities via a cordless phone base station. Cordless phone unitstypically employ a manufacturer's proprietary protocol to manage fullduplex communications between the handset and a single cordless phonebase station connected to a phone line. Further, land mobile radio,systems, CB radios, walkie-talkies and radios using the new family bandprovide half duplex (push-to-talk) wireless voice commination overextended ranges (e.g., at ranges up to 2 miles). These devicescommunicate directly by broadcasting voice signals over channels thatare shared with anyone who buys a similar device and desires to listenin to the conversation.

Such technologies do not incur fees, since they do not rely upon awireless network infrastructure or service provider, such as withcellular or PCS units. However, these devices also suffer from severaldrawbacks. For example, cordless phone systems operate over limitedranges and do not support direct handset-to-handset communication, sinceall calls are handled through the cordless phone base station. Cordlessphone units also have limited capabilities and operating features thatrestrict their usefulness. Further, while land mobile radio systems, CBradios, walkie-talkies and other radio systems provide directcommunication between units over extended ranges, such devices do notprovide any level of privacy since all signals are broadcasted by theunits and may be received by other parties. In addition, radio devicesonly provide half-duplex communications and require that users manuallyselect similar operating channels.

In recent years, Personal Handyphone System (PHS) handsets have beenprovided as an alternative and more economical solution for wirelesscommunications. PHS systems utilize low powered handsets and amicro-cell network architecture including a large number of cellstations to provide coverage. Each cell station picks up a carrier atrandom from those available and selects a carrier on the basis of leastinterference. A traffic channel is then allocated to provide wirelesscommunications. PHS systems also provide other features, such as userauthentication, location registration and seamless handover duringcalls. PHS systems, however, have not been commercially successful inmany developed countries (including the United States and Germany) andhave limited handset features.

In view of the foregoing, there is presently a need for a full-featuredwireless handset that includes enhanced features or capabilities toprovide a user with greater flexibility and optimum performance. Forexample, many users would benefit from a full-featured wireless handsetthat is capable of operating within a wireless network (such as acellular phone, PCS or PHS network), as well as operating in a directhandset-to-handset mode within a limited range but without theutilization of a wireless network. Since direct handset-to-handset callsavoid the use of a wireless network, users would be provided with thebenefit of being able to place calls free of the wireless network andwith little or no airtime charges (i.e., monthly service or use chargescould be applied to the user by the supplier of the wireless handset). Afull-featured wireless handset with such functionality would have broadappeal to many users and could be applied to many applications to permitusers to reduce their cellular phone charges. There is also a need foran improved wireless handset that has enhanced features, and which doesnot suffer from the drawbacks of existing communication devices, such asthose described herein. For example, a wireless handset that is capableof operating in a direct handset-to-handset communication mode would bebeneficial if it included enhanced features, such as full-duplex,private communication, dynamic channel allocation and handset locatingcapabilities. Such features would eliminate the need for users toprearrange or manually select operating channels (which is a commondrawback in radio systems such as CB radios) and provide full duplexcommunication free of a communication network and without incurringsubstantial airtime charges.

Various user groups and industries would benefit from such an enhancedwireless handset. For example, the functionality of such a wirelesshandset is currently needed by mobile crews, on-site mobile personnel,businesses, teachers, teenagers and families. Mobile crew workers,including contractors, electricians, plumbers, tow truck drivers andcaterers, have a strong need for such a wireless handset to enable suchpersonnel to keep in contact with one another at various job sites andto facilitate collaboration on projects at a substantial cost savings.On-site mobile personnel, such office building employees and personnel,security personnel, and warehouses, as well as teachers and otherfaculty members would also benefit from such a wireless handset, byenabling them to keep contact with other personnel and departments whilespending much of their day in transit or in remote locations of the jobsite. In addition, there is a need for an enhanced, wireless handsetcommunication device by teenagers and families which wish to keep incontact with one another during social events or vacations. Such adevice would also provide an inexpensive solution for locating oneanother and preventing parties from being lost or separated.

SUMMARY OF THE INVENTION

In view of the foregoing, the present invention, through one or more ofits various aspects, embodiments and/or specific features orsubcomponents thereof, is thus intended to bring about one or more ofthe objects and advantages as discussed below.

An object of the present invention is to provide a fully featured,wireless handset that provides greater flexibility and operatingcapabilities for users.

In addition, an object of the invention is to provide a wireless handsetthat is inexpensive to operate and that includes enhanced features andcapabilities.

A further object of the invention is to provide a wireless handset thatis capable of operating in a direct handset-to-handset communicationmode.

Another object of the present invention is to provide a wireless handsetthat has enhanced operating features, including the capability ofoperating either within a wireless network or outside of a wirelessnetwork in a direct handset-to-handset communication mode.

Still another object of the present invention is provide a wirelesshandset that is capable of providing full-duplex communication andperforming dynamic channel allocation to establish communication withanother handset.

Yet another object of the present invention is to provide a wirelesshandset with enhanced features, such as a find feature that assists ahandset operator in determining what objects, including other handsetusers, are located within the handset's operating range.

Another object of the invention is to provide a wireless handset thatincludes a memorize feature, which permits a wireless handset toexchange information conveniently and securely with another handset orobject by wireless transmission.

In addition, an object of the invention is to provide a plurality ofenhanced features for a wireless handset, including find features,memorize features, conference call features and short range messagingfeatures.

Accordingly, an enhanced wireless handset is provided that is capable ofoperating within a traditional wireless network or in a directhandset-to-handset communication mode. The wireless handset includesenhanced operating features, including find features for locatingobjects, including other wireless handsets, paging devices and beepingdevices or clips attached to items (such as keys, tools, pets, etc.),that are within range of the wireless handset. In order to provide suchfeatures, the wireless handset is implemented with: means for initiatinga find feature to determine if at least one specified object is withinrange of the wireless handset; means for generating a query message overa control channel based on the initiation of the find feature; means fordetecting a positive response message from the specified object in replyto the query message; and means for indicating, based on the positiveresponse message being detected by the detecting means, that thespecified object is within range of the wireless handset.

According to an aspect of the invention, the wireless handset mayinclude a find list that comprises a plurality of entries, wherein eachof the entries includes information for specifying at least one object.The information of each entry in the find list may include the nameand/or ID associated with the object specified by the entry. Theinitiating means may initiate a find feature based on the information ofat least one entry of the find list. The wireless handset may alsoinclude means for selecting an entry in the find list to specify anobject, whereby the initiating means initiates a specific find requestbased on the object specified by the entry of the find list selectedwith the selecting means to determine if the selected object is withinrange of the wireless handset. When no entry in the find list isselected with the selecting means, the initiating means may initiate ageneral find request based on each object specified by the plurality ofentries of the find list in order to determine which objects on the findlist are within range of the wireless handset.

In accordance with another aspect of the invention, the indicating meansmay comprise means for recording information to a found list based onthe positive response message and means for displaying the found list toindicate that the specified object is within range of the wirelesshandset. The wireless handset may also include means for detecting whena response has not been received, within a predetermined wait time, fromthe specified object in reply to the query message, and means foralerting that the object was not found when the detecting means detectsthat a response has not been received. The query message may comprise anID of the specified object and an ID of the wireless handset thatgenerated the query message. Means for detecting a signal strength ofthe positive response message may also be provided, and the indicatingmeans may indicate the detected signal strength of the positive responsemessage to the user of the wireless handset.

In accordance with another aspect of the invention, a method is providedfor locating objects, such as other wireless handsets, paging devicesand beeping devices or clips, that are within range of a wirelesshandset. The method comprises: initiating a find feature to determine ifat least one specified object is within range of the wireless handset;generating a query message over a control channel based on theinitiation of the find feature; detecting a positive response messagefrom the specified object in reply to the query message; and recordinginformation to a found list based on the positive response message toindicate that the specified object is within range of the wirelesshandset.

The method may further, comprise providing a find list comprising aplurality of entries, and initiating a find feature based on informationof at least one entry of the find list, wherein the information of eachentry in the find list specifies at least one object to be located. Themethod may also provide selecting an entry in the find list to specifyan object and initiating a find feature based on the object specified bya selected entry of the find list to determine if the selected object iswithin range of the wireless handset. When it is detected that no entryin the find list has been selected, a general find request may beinitiated based on each object specified by the plurality of entries ofthe find list to determine which objects on the find list are withinrange of said wireless handset.

The present invention also relates to a wireless handset with enhancedoperating features, including find features for locating objects (suchas other wireless handsets) that are within range of the wirelesshandset. In accordance with an aspect of the invention, the wirelesshandset comprises: means for initiating a find feature to determine ifat least one specified object is within range of the wireless handset;means for tuning to a registry channel based on the initiation of thefind feature; means for receiving a registry message on the registrychannel from the at least one specified object in response to the querymessage; and means for recording information based on the registrymessage received from the at least one specified object.

The information that is recorded by the recording means may include thename and/or ID associated with the specified object. Further, therecording means may record the information to a found list to indicatethat the specified object is within range of the wireless handset.Alternatively, the information that is recorded by the recording meansmay comprise the ID associated with the specified object and a channelfor contacting the specified object. In such a case, the recording meansmay record the information to a temporary list of the wireless handset.Further, means for generating a query message over the channel forcontacting the specified object may be provided, as well as means fordetecting a positive response message from the specified object in replyto the query message.

The wireless handset may also comprise means for indicating, based onthe positive response message detected by the detecting means, that thespecified object is within range of the wireless handset, means forrecording information to a found list based on the positive responsemessage, and means for displaying the found list to indicate that thespecified object is within range of the wireless handset. In this case,the information that is recorded by the recording means may indicate achannel for contacting the specified object and a slot time forcontacting the specified object on the channel.

In accordance with another aspect of the invention, a method is providedfor locating objects that are within range of a wireless handset. Theobjects to be located may comprise other wireless handsets, pagingdevices and beeping devices or clips attached to items. In general, themethod may comprise: initiating a find feature to determine if at leastone specified object is within range of the wireless handset; tuning toa registry channel based on the initiation of the find feature;receiving a registry message on the registry channel from the at leastone specified object in response to the query message; and recordinginformation based on the registry message received from the at least onespecified object.

The information that is recorded may include the name and/or IDassociated with the specified object. Further, in the disclosed method,information may be recorded to a found list to indicate that thespecified object is within range of the wireless handset.

According to another aspect of the invention, a wireless handset withenhanced operating features is provided, wherein the enhanced operatingfeatures comprise a memorize feature for exchanging information withobjects, including other wireless handsets that are capable of operatingin a communication mode with the wireless handset. To implement thememorize feature, the wireless handset may comprise: means forinitiating a memorize feature with at least one object; means forgenerating a query message based on the initiation of the memorizefeature to request a response from the at least one object; means forreceiving a positive response message from the at least one object inreply to the query message; and means for recording information based onthe positive response message received from the at least one object.

The information that is recorded by the handset may include an ID ornumber associated with the at least one object. Further, the generatingmeans may generate the query message at a reduced power level when theat least one object is in close proximity to the wireless handset, sothat the query message is not received by other objects.

The above-listed and other objects, features and advantages of thepresent invention will be more fully set forth hereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is further described in the detailed descriptionwhich follows, by reference to the noted plurality of drawings by way ofnon-limiting examples of preferred embodiments of the present invention,in which like reference numerals represent similar parts throughout theseveral views of the drawings, and wherein:

FIG. 1 illustrates the basic components of a conventional cellularnetwork system;

FIG. 2 illustrates exemplary components of a network infrastructure forsupporting wireless communication between enhanced wireless handsets,according to an aspect of the present invention;

FIG. 3 illustrates, in accordance with another aspect of the presentinvention, a direct handset-to-handset communication mode betweenwireless handsets;

FIG. 4A is an exemplary block diagram of the main components of awireless handset, in accordance with an aspect of the present invention;

FIG. 4B illustrates, in accordance with an aspect of the invention,exemplary features of a wireless handset;

FIG. 5 illustrates a state transition diagram of a wireless handset, inaccordance with an aspect of the invention;

FIGS. 6A, 6B, 6C, 6D and 6E are exemplary flowcharts of the variousprocesses and operations that may be performed by a wireless handset ofthe invention when operating in an Idle state and responding to messagesfrom other handsets;

FIGS. 7A and 7B illustrate exemplary flowcharts of the various processesand operations in an Paging state, according to an aspect of theinvention;

FIG. 8 illustrates an exemplary flowchart of the various processes andoperations in a Conversation state, according to an aspect of theinvention;

FIGS. 9A and 9B are exemplary flowcharts of the various processes andoperations that may be carried out for performing a general find requestwith a separate or dedicated tuner;

FIGS. 10A and 10B are exemplary flowcharts, in accordance with anotherembodiment of the invention, of the various processes and operationsthat may be carried out for performing a general find request with apredefined control channel;

FIGS. 11A and 11B are exemplary flowcharts of the various processes andoperations that may be carried out for performing a general findrequest, in accordance with yet another embodiment of the invention;

FIG. 11C is an illustration of the manner in which handsets may registersequentially on a control channel;

FIGS. 12A and 12B are exemplary flow charts of another embodiment of theinvention for performing a general find request;

FIGS. 13A and 13B are exemplary flowcharts of the various processes andoperations that may be carried out for performing a specific findrequest with a separate or dedicated tuner;

FIGS. 14A and 14B are exemplary flowcharts, in accordance with anotherembodiment of the invention, of the various processes and operationsthat may be carried out for performing a specific find request to locatea specific object, such as another wireless handset user, with apredefined control channel;

FIGS. 15A and 15B are exemplary flowcharts of the various processes andoperations that may be carried out for performing a specific findrequest, in accordance with yet another embodiment of the invention;

FIGS. 16A and 16B are exemplary flow charts of another embodiment of theinvention for performing a specific find request;

FIGS. 17A and 17B are exemplary flow charts of an embodiment forperforming a memorize feature of the present invention;

FIGS. 18A, 18B and 18C illustrate an embodiment for providing three-wayconferencing through the use of time domain multiplexing;

FIGS. 19A and 19B illustrate an embodiment for locating anon-transmitting object, such as a paging or clip device attached to anitem;

FIGS. 20A and 20B illustrate an embodiment for locating a transmittingobject, such as a paging or clip device attached to an item;

FIGS. 21A and 21B illustrate an embodiment for locating a transmittingobject, such as a paging or clip device attached to an item, and causingthe device to emit an audible beep;

FIGS. 22A and 22B are exemplary flowcharts of the various processes andoperations that may be carried out by a wireless handset (i.e., handsetA) when a free call is to be initiated and set up with another handset(i.e., handset B);

FIGS. 23A and 23B are exemplary flowcharts of the various operations andprocedures that may be carried out by handset B when responding to thecall request from handset A;

FIGS. 24A and 24B are exemplary flowcharts of the functions andprocedures carried out by handset A when negotiating a channel for thecall with handset B, wherein handset A acts as the originator ororiginating party for the channel negotiation;

FIGS. 25A and 25B are exemplary flowcharts of the various procedures andoperations carried out by handset B when negotiating the channel for thecall with handset A, wherein handset B acts as the recipient for thechannel negotiation;

FIGS. 26A and 26B are exemplary flowcharts of the various processes andoperations carried out by handset A for initiating a call with handsetB, when handset B is on a call with another handset (i.e., handset C);

FIGS. 27A and 27B are exemplary flowcharts of the various processes andoperations that may be carried out by handset B to handle the callrequest from handset A, while handset B is on a call with handset C;

FIG. 27C is an exemplary flowchart of the various processes andoperations that may be carried out by handset C when it is placed onhold by handset B to accept the call request from handset A;

FIG. 28 is an exemplary flowchart of the various processes andoperations that may be carried out by handset A to initiate a callrequest and establish a free call with handset B through the use of adedicated channel;

FIG. 29 illustrates the various operations and procedures that may becarried out by handset B when responding to the call request fromhandset A;

FIGS. 30A and 30B are exemplary flowcharts of the various processes andoperations that may be carried out by handset A when negotiating achannel with handset B, with handset A acting as the originator ororiginating party;

FIGS. 31A and 31B are exemplary flowcharts of the various processes andoperations that may be carried out by handset B when negotiating achannel with handset A, with handset B acting as the recipient orreceiving party;

FIG. 32 is an exemplary flowchart of the various processes andoperations carried out by handset A for initiating a call with handsetB, when handset B is on a call with another handset (i.e., handset C);

FIG. 33 is an exemplary flowchart of the various processes andoperations that may be carried out by handset B to handle the callrequest from handset A, while handset B is on a call with handset C;

FIG. 34 is an exemplary flowchart of the various processes andoperations that may be carried out by handset C when it is placed onhold by handset B to accept the call request from handset A;

FIG. 35 is an exemplary block diagram of the main components of anon-transmitting clip device, in accordance with an aspect of thepresent invention;

FIG. 36 is an exemplary block diagram of the main components of atransmitting clip device, in accordance with another aspect of thepresent invention;

FIGS. 37 and 38 are exemplary flowcharts, in accordance with an aspectof the invention, of the various processes and operations that may becarried out by handset A and handset B, respectively, to establish afree call through the utilization of a dedicated control channel;

FIGS. 39A and 39B illustrate exemplary flowcharts of the variousprocesses and operations in a Find Request state, according to an aspectof the invention;

FIGS. 40A and 40B illustrate exemplary flowcharts of the variousprocesses and operations in a Memorize Request state, according toanother aspect of the invention; and

FIGS. 41A and 41B illustrate exemplary flowcharts of the variousprocesses and operations in an Short Range Messaging state, according tostill another aspect of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Referring to the accompanying drawings, a detailed description of thepreferred embodiments and features of the present invention will beprovided.

The present invention relates to a wireless handset that includesenhanced features to provide greater flexibility and optimumperformance. According to an aspect of the present invention, a wirelesshandset is provided that permits a user to operate either within awireless network or to communicate with another user in a directhandset-to-handset operating mode. The direct handset-to-handsetcommunication mode provides full-duplex, two-way communication withoututilizing a wireless network infrastructure. In addition, as furtherdescribed herein, the wireless handset of the present invention includesfeatures that enhance the operability and functionality of the handset.Such features include a find or locate feature that assists a handsetoperator, in determining what other handset users are located within theoperating range of the wireless handset. These and other features andaspects of the present invention will now be described in greater detailwith reference to the accompanying drawings.

The wireless handset of the present invention may be implemented as afully featured handset that is capable of operating in a wirelessnetwork, such as a cellular or PCS network, and/or to operateindependent of a wireless network in a direct handset-to-handsetcommunication mode. FIGS. 2 and 3 illustrate the main operating modes ofthe wireless handset of the invention. While it is preferred that thehandset is provided with this dual capability or functionality, it ispossible to implement the wireless handset and features of the presentinvention in the form of a special purpose handset that is capable ofonly operating in a direct handset-to-handset communication mode. Such aspecial purpose handset may communicate with other special purposehandsets and/or with full-featured handsets that are also capable ofoperating within a wireless network. In addition, it is also possible toimplement the wireless handset of the present invention in the form of ahandset that is capable of operating in a direct handset-to-handsetcommunication mode and that can function as a cordless phone incooperation with a cordless phone base station. Such a wireless handsetmay also be provided with the capability to operate within a wirelessnetwork, such as a cellular or PCS network. Other modifications andimplementations may be realized according to the needs of the wirelesshandset user.

FIG. 2 illustrates a wireless network operating mode of a wirelesshandset, according to an aspect of the present invention. As shown inFIG. 2, wireless handsets 42A, 42B may communicate with one another viaa wireless network infrastructure 132. Wireless network infrastructure132 may be implemented utilizing conventional cellular or PCStechnology. In the exemplary embodiment of FIG. 2, wireless handset 42Amay establish wireless communication with wireless handset 42B under thecontrol of mobile switching center (MSC) 124. Assuming that wirelesshandset 42A is operating within a cell coverage area 145 of base stationor cell site 140, a call may be completed to wireless handset 42Boperating within cell coverage area 135 of base station or cell site 130by use of conventional air interface technology and landlines 116connecting the base stations to the MSC 124. A call may also becompleted if both wireless handsets 42A and 42B are operating within thesame cell coverage area (e.g., area 135 or 145), in which case only onebase station is involved. When operating within wireless networkinfrastructure 132, calls initiated by either wireless handset 42A or42B are normally assessed airtime charges or fees according to theservice plans subscribed to by the users. In addition, fees may also beassessed if either handset 42A or 42B is roaming outside of its homemarket area or if certain service options are enabled.

When operating in a direct handset-to-handset communication mode, thewireless handsets 42A, 42B of the present invention directly establishcommunication between one another without use of a wireless networkinfrastructure. As a result, airtime charges may be avoided when thewireless handsets 42A, 42B are functioning in a directhandset-to-handset mode and independently of a network. As illustratedin FIG. 3, when communicating in a direct handset mode, wirelesshandsets 42A, 42B can directly communicate with one another without theuse of a base station or MSC. As further described herein, the selectionand setup of a channel for providing communication between the handsetsmay be established through the use of a dynamic channel allocationtechnique or process. In such a case, predefined channels may beallocated and searched, with a channel being selected based on thechannel having the least detected interference level or the firstlocated channel providing sufficient signal strength. In addition, otherchannel selection and setup techniques may be utilized to avoid the needfor manual channel selection and coordination by each user or operator.

As discussed above, the wireless handset of the present invention may beconfigured and implemented according to the level of functionality andoperability that is required (e.g., direct handset mode only or withdual communication mode capabilities). FIGS. 4A and 4B illustrateexemplary components and features of a wireless handset that is capableof operating both within a wireless network and outside of a wirelessnetwork in a direct communication mode. The construction and features ofwireless handset 42 in FIGS. 4A and 4B may be utilized to construct thewireless handsets 42A or 42B illustrated in FIGS. 2 and 3 and furtherdescribed herein.

As illustrated in the exemplary block diagram of FIG. 4A, wirelesshandset 42 may be implemented as a full featured wireless handset thatcomprises a control system 61, an antenna 62, a transceiver or tuner 63,a speaker 64, a display 65, a keypad 66, a microphone 67, and memory 70.An input/output (I/O) port 69 may also be provided for facilitatingcommunication with various devices (such as a portable computer, modem,printer, etc.) and for downloading or loading information into memory70. Wireless handset unit 42 may be configured to provide all thefeatures of a conventional cellular handset unit, in addition to theunique programming and memory configurations and contents forimplementing the direct handset communication mode and other operatingfeatures of the present invention.

By way of non-limiting example, speaker 64 may comprise a conventionalspeaker for converting electrical audio signals received by antenna 62into acoustic audio signals, and microphone 67 may comprise aconventional microphone for converting voice utterances of a user fromacoustic audio signals into electric audio signals for transmission byantenna 62. In addition, display 65 and keypad 66 may be implemented byconventional display and keypad devices for displaying and permittingentry of alphanumeric and other information. For instance, display 65may comprise dedicated status lights and/or, a liquid crystal display(LCD) to indicate (through flashing lights, alphanumeric messages,symbols, icons, etc.) the status of the wireless handset unit and theoperating mode. Further, keypad 66 may comprise menu selection buttonsand/or a conventional 12-button, alphanumeric keypad for initiating andreceiving calls, and programming or selecting operating conditions forthe wireless handset. The keys of keypad 66 may include dedicated keyswhich initialize or select certain functions of the handset or enteralphanumeric data when pressed. The keys of keypad 66 may also include“soft keys” which provide multiple functionality depending on theoperating state or mode of the handset. For example, a soft key may beprovided which functions as both a power (i.e., ON/OFF) switch as wellas an end call (i.e., On-Hook) switch.

FIG. 4B illustrates an exemplary embodiment of the external constructionand arrangement of the main components of wireless handset 42, includingantenna 62, speaker 64, display 65, keypad 66, and microphone 67. Thearrangement of these components may of course be modified or enhancedaccording to the needs of the user and the type of features incorporatedinto the handset. In addition, as discussed above, wireless handset 42may also include an I/O port 69 (illustrated as being provided on a sidesurface of wireless handset 42 in FIG. 4B) to facilitate the loading anddownloading of information into memory 70 of the wireless handset 42.I/O port 69 may comprise, for example, a data port, a SubscriberIdentity Module (SIM) card slot and/or other types of ports or slots.Memory 70 of wireless handset 42 may store the MIN, programming andother operational information to implement the various features andaspects of the invention. Memory 70 may comprise a read-write memorydevice that has an independent power supply or whose contents will notbe effected by power downs of ordinary duration. By way of non-limitingexample, memory 70 may be implemented by a programmable ElectronicallyErasable Programmable Read Only Memory (EEPROM), a Complimentary MetalOxide Semiconductor (CMOS) memory chip, or a conventional Random AccessMemory (RAM) with an independent power supply.

As illustrated in the exemplary architecture arrangement of FIG. 4A,antenna 62 may be connected to transceiver or tuner 63, which in turn isconnected to a control system 61. Although transceiver 63 is illustratedas a single unit in FIG. 4A, a separate transmitter and receiver mayalso be provided to provide the functionality of transceiver 63.

Control system 61 may be implemented as a microprocessor-based controlsystem and may be programmed to carry out the various features of theinvention. The programming of control system 61 may be carried out byany suitable combination or use of software, hardware and/or firmware.Control system 61 may control the various components of the wirelesshandset 42 to permit a user to send and receive calls and program thewireless handset. In addition, control system 61 may have access tomemory 70, in which the MIN and other programming information is stored,for directing operation of the wireless handset. A more detaileddescription of the various processes and functions of the operatingfeatures and modes of the invention is provided below with reference tothe accompanying drawings.

As discussed above, the wireless handset of the present invention may bea full-featured wireless handset that is capable of operating within awireless network (e.g., a cellular or PCS network) or in a directhandset-to-handset communication mode that functions independently of awireless network. As such, the wireless handset of the present inventionmay be embodied as a full featured wireless handset capable of makingtraditional wireless calls and that has the additional functionality ofenabling the handset to place direct calls to other handsets. Sincedirect calls do not access a wireless network, such calls will operatefree of the wireless network and with little or no airtime charges(i.e., a monthly, service or use charge may be charged to the user bythe provider of the wireless handset). Direct calls that are placedwithout access to a network are referred to as “free calls” herein.According to, an aspect of the present invention, the wireless handsetmay be provided with traditional or conventional wireless features, aswell as the specific features and functionality of the presentinvention. Generally, the features of the wireless handset may beclassified into the following categories: Traditional Wireless features;Free Call Control features; Find features; List Maintenance features;Conference Call features; Short Range Messaging features; andAccessory-Related features. Each of these features will be discussed ingreater detail below.

If the wireless handset is embodied to provide Traditional Wirelessfeatures and call functionality, then the wireless handset may beimplemented with traditional analog and/or digital wireless features.Such features may include: Caller ID; Caller ID. Log; Short MessageService (SMS); Auto. Answer; Choice of Alerts; Vibration Alert; CallMute; Large, Scrollable Speed Dial List; Headset (with microphoneaccessory); and Computer Connectivity and Control. Any combination ofthese features, as well as additional features, may be embodied in thewireless handset to facilitate traditional analog and/or digitalwireless connectivity. Of course, as discussed above, it is possiblethat the wireless handset be provided as a special purpose handset withonly direct handset-to-handset functionality. In such a case, theabove-described features may be eliminated or may be modified andprovided to support direct handset communication.

As indicated above, calls made in a direct handset communication modewith the wireless handset are referred herein to as “free calls”, sincesuch calls are made free of the wireless network and with little or noairtime charges. Free Call Control features may be provided to enhancethe operation of the wireless handset when calls are placed directlyfrom one handset to another. These features may encompass both callinitiate and call receive features, and call in progress and alertfeatures. Various call initiate feedback features may also be providedfor Free Call Control. For example, when a user initiates a free callwith the handset, the status or progress of the call may be indicated tothe user through the use of predetermined messages and/or icons that aredisplayed on the handset and/or the generation of predetermined audibletones that are transmitted to the user through the speaker of thehandset. For example, the display of the handset may, indicate the nameor ID of the handset to which the call is directed, and one or moreicons or messages may be displayed on the handset to indicate theprogress of the call (e.g., on-hook, off-hook, ringing, etc.). Thestatus and progress of the initiated call may also be indicated to theuser through the use of predetermined audible tones (e.g., dialing,ringing, busy, etc.). Messages may also be displayed on the handset toprovide feedback to the user as to whether the offered call was notresponded to or received by the called party. With such features, a userwill be better equipped to handle and control direct handset calls withother users.

As indicated above, the handset of the present invention may also beprovided with various Find features. These features may be provided topermit a user to determine all objects, including other handset users,that are within range or to determine if a specific handset or, objectis within range of the user. As further described below, the handset ofthe user may have a prestored find list of other handsets or objectsthat can be located with the Find features. A user may be given theoption to locate a specific handset or object on the list or, toinitiate a general find function such that each of the handsets orobjects on the list are queried to determine if they are within range.In order to maintain privacy, each handset or object may only respond toa query if they have the querying handset on a list and they are inrange of the user. As a result, only handsets or objects that have giventhe querying handset permission to find them will respond to a findquery.

The wireless handset of the present invention may also include a set ofList Maintenance features. These features may be provided to permit auser to add and delete handsets or objects to one or more lists storedin the handset, such as a speed dialing list for initiating calls, afind list for locating other handsets or objects, and/or a privacy listfor blocking find queries from specific handsets so that privacy may bemaintained. With the List Maintenance features, a user may be permittedto add, delete and view each list stored in their handset. In accordancewith an aspect of the present invention, a single list may be stored ineach handset to function as a master list for all direct handset calls.In such a case, the master list may serve as a speed dial list, a findlist and a privacy list. That is, the master list serves as a speed diallist when a direct handset call is initiated by a user, and also servesas a querying or find list when a find function is initiated by a userto locate all handsets or objects, or a specific handset or object thatis within range. The List Maintenance features may also include amemorize feature which permits two handsets to update their respectivemaster list, find list or privacy list with the ID of the other handset.The memorize feature may be activated when handsets are brought in closeproximity to each other or their respective antennas are brought intocontact, and users press a predetermined key or button within a shorttime window. As further discussed below, the memorize feature may alsopermit a user to memorize other objects, such as an accessory or devicethat is capable of being queried (such as a beeping clip or pagingdevice) by activating the memorize function on the object in order toautomatically add the object to the find list.

Other features that may be provided with the wireless handset includeConference Call features, Short Range Messaging features, andAccessory-Related features. The Conference Call features may permit“free call” conferencing between three handset users. The three-wayconferencing may be enabled through time domain multiplexing and, asfurther described below, may utilize either a fixed controlled time slotor a variable controlled time slot to permit conferencing. The ShortRange Messaging features may include features to permit short rangemessages to be sent directly from one handset to another handset whenboth handsets are idle or during a controlled time slot if the receivinghandset is on a call. Further, Accessory-Related features may beprovided to enhance the wireless handset of the present invention. Forexample, computer connectivity may be provided to enable downloading oflists and configuration data. Further, beeping clips or other pagingdevices may be provided that can be attached or secured to items (suchas keys, wallets, tools, etc.) in order to facilitate finding thoseitems through the Find features of the invention.

In order to implement the wireless handset of the present invention withsuch functionality, the wireless handset may be embodied with anysuitable combination of hardware, software, logic and/or programmed codeto perform the required functions. FIG. 5 illustrates a state transitiondiagram of the functionality that may be embedded in the wirelesshandset to provide direct handset-to-handset communication and free callcapability. The exemplary state transition diagram of FIG. 5 illustratesthe various states and trigger conditions to transition between eachstate. As discussed above, this functionality may be provided in aspecial purpose wireless handset or preferably may be embodied orbundled with a wireless handset which also has cellular or PCScapability. A wireless handset having both capabilities would provide auser with nearly ubiquitous coverage, either handset-to-handset or via awireless network. In addition, such a wireless handset can also sharecircuitry to reduce costs over having two separate wireless handsets.For example, the handset-to-handset communication capability can use thesame 10 Kbps data circuitry, used in conventional analog cellularphones. The same voice processing circuitry could also be used, as wellas the same housing, keypad, display, antenna, microphone, speaker, etcby both functions.

Referring to FIG. 5, when the wireless handset is powered or turned ON,the wireless handset may initialize and enter, an Idle state. When in anIdle state, the wireless handset is waiting for a call. Calls may, beplaced in a direct handset-to-handset communication mode by dialing theassigned directory or telephone number of the handset. If a wirelesshandset is provided with dual functionality, the telephone number of theanalog or digital handset (i.e., the MIN) may be the same number usedfor placing free calls to the wireless handset in a direct communicationmode. In a direct communication mode, full duplex handset-to-handsetcall setup and call states are provided using frequency domainduplexing. In an Idle state, the receiver of the wireless handset maymonitor a higher range of the duplex band to search for pages directedto its internally stored directory number or MIN. Free calls may be setup and handled over a non-cellular or unlicensed band. For example,direct handset-to-handset communication may be provided by utilizing anon-cellular, unlicensed band such as the 930 MHZ Industrial, Scientificand Medical band that is authorized under Part 15 of the FCC Rules.

As further discussed below with reference to FIGS. 6A-6E, when awireless handset is in an Idle state, the receiver of the handset mayscan a predetermined set of frequencies (i.e., f.sub.1, f.sub.2, . . .f.sub.N). When the receiver or transceiver of the wireless handset tunesto a frequency, the handset may dwell long enough to measure the signalstrength, obtain synchronization and decode a paging message, ifavailable. If the signal strength is below a set threshold, or if nomessage is being sent, or a paging message directed to a differentmobile station or wireless handset is decoded, the wireless handset maytune to the next frequency and repeat the process. If a paging messagedirected to the wireless handset is decoded, then the responding handsetmay send a page response on a lower range of the duplex bandcorresponding to the frequency to which the receiver is tuned. Whilepaging, the originating wireless handset receiver listens for a pageresponse on the lower associated duplex frequency (Paging state in FIG.5). If the receiver decodes the response without error, then thewireless handset will switch to a voice mode on the same duplexfrequency pair and enter a Conversation state. This is illustrated inFIG. 5 by condition f (page received and user answers). If the pageresponse is not decoded after a predetermined number of attempts (i.e.,M page attempts), the originating handset may provide a reorder alert(e.g., a reorder tone in the speaker or earpiece) and not enter into aConversation state. “M” may be selected to ensure that a handset in theIdle mode will scan and decode the frequency at least once. Under thiscondition, the originating wireless handset which sent the pagingmessage will return to an Idle state from a Paging state. Thistransition is illustrated in FIG. 5 by condition c (no page responsereceived). In an Idle state, the paged wireless handset may respond apredetermined number of times (e.g., L times) when paged by anoriginating wireless handset. “L” may be greater than one to increasethe reliability that the message will be received without errors. Thepaged wireless handset will then switch to a voice mode and enter aConversation state when the user indicates that the call should beanswered (i.e., a user may press an answer key to indicate that the callshould be received). This transition is indicated in FIG. 5 by conditionf (page received and user answers). Otherwise, if the user does notanswer, the paged wireless handset will eventually time out and stay inan Idle state.

FIGS. 6A-6E are exemplary flowcharts of the various processes andoperations that may be performed by a wireless handset of the inventionwhen operating in an Idle state and responding to various messages fromother handsets. According to an aspect of the present invention, Nfrequency pairs may be assigned to the wireless handset. The higherfrequency associated with the duplex channel “i” is designated asF.sub.hi. Further, in the illustrated embodiment, the lower frequency isdesignated as F.sub.li. Essentially, up to N simultaneous calls can besupported assuming adequate adjacent channel selectively in the wirelesshandsets. FIG. 6A illustrates a sequential scan of the N channels.Alternative arrangements, however, may be provided. For example, a quicksearch based on signal strength could be implemented. In such a case,only channels exceeding a predetermined or programmed signal strengththreshold would be evaluated for synchronization and paging messages.Further, the signal strength ranking would be updated periodically.

In the exemplary embodiment of FIG. 6A, when a wireless handset entersan Idle state, the receiver of the wireless handset is switched to apredetermined higher band of the duplex pass band (see step S.2).Further, at step S.2, the transmitter is switched to a predeterminedlower band of the duplex pass band. Thereafter, at step S.4, a counter iis set to 1. At step S.6, the receiver of the wireless handset is tunedto, the high frequency F.sub.hi. After tuning the receiver to thefrequency. F.sub.hi, the handset waits for a synchronization signal.

At step S.8, it is determined whether a synchronizing signal isreceived. If synchronization is received, then logic flow proceeds tostep S.12. Otherwise, at step S.10, the counter i is modified accordingto, the following formula:i=(i+1)mod N.

Following step S.10, logic flow returns to step S.6, where the receiverof the handset is returned to the next high frequency F.sub.hi.

At step S.12, the wireless handset determines whether a page message hasbeen received. If a page message is not received within a predeterminedperiod of time, then logic flow proceeds to step S.16, where the handsetdetermines whether another type of message has been received. Otherwise,at step S.14, the called party directory number DNr is decoded by thereceiver based on the page message that is received and it is determinedwhether the directory number DNp stored in the wireless handset is thesame as or corresponds to the called party directory number DNr.

If it is determined at step S.14 that DNr=DNp, then at step S.1600 (seeFIG. 6B) the transmitter of the wireless handset is tuned to the lowerfrequency F.sub.li. Otherwise, logic flows back to step S.10, so that iis modified and the receiver is tuned to a different high frequency.

As shown in FIG. 6B, following step S.1600, the receiving wirelesshandset sends a page response message at step S.1618. In accordance withan aspect of the present invention, the page response message may besent back to the originating wireless handset repetitively to ensurereceipt of the same. For this purpose, the page response message may besent a predetermined number of times (e.g., L times). Thereafter at stepS.1620, the receiving wireless handset may activate an alerter of thereceiving handset so as to provide an alert indication to the user ofthe incoming call. The alert indication provided by the alerter maycomprise an alerting signal or tone (such as a ringing signal or tone)or activation of a vibration mechanism to cause the wireless handset tovibrate. Other alerting indications may be provided and may be activatedby the user.

As further shown in FIG. 6B, at step S.1622, the wireless handsetdetermines whether the user has indicated to answer the incoming call inresponse to the generation of the alert indication. In accordance withan aspect of the present invention, the user may be given apredetermined amount of time (i.e., T.sub.alert seconds) to respond toand to indicate whether a call should be answered. If the wirelesshandset user indicates to answer the call within the predetermined time(e.g., by pressing an answer or talk button on the wireless handset),the wireless handset may switch to a voice mode at step S.1624 and enterinto a Conversation state to provide full duplex communication betweenthe wireless handsets. Otherwise, at step S.1626, the wireless handsetmay display an indication to the wireless handset user that the call wasreceived but not answered and, thereafter, enter into an Idle state.

Referring again to FIG. 6A, if it is determined that a page message wasnot received at step S.12, then at step S.16 the handset will determinewhether a find message has been received from another handset. Asdisclosed herein, the wireless handsets of the present invention mayinclude a find feature that permits a handset to locate objects,including other wireless handsets, that are within range. If a findmessage has been received at step S.16, then logic flow proceeds to stepS.18. Otherwise, if a find message has not been received at step S.16,the handset proceeds to step S.20 to determine if another type ofmessage has been received.

At step S.18, the called party directory number DNr is decoded by thereceiver of the handset based on the find message that is received andit is determined whether the directory number DNp stored in the wirelesshandset is the same as or corresponds to the called party directorynumber DNr. If it is determined at step S.18 that DNr=DNp, then at stepS.1630 (see FIG. 6C) the wireless handset will determine whether, therequesting handset that sent the find message is on its Find list.Otherwise, logic flows back to step S.10, so that i is modified and thereceiver is tuned to a different high frequency.

As illustrated in FIG. 6C, at step S.1630 it is determined whether therequesting DN is on the Find list of the handset. The determination atstep S.1630 may be made by comparing the directory number. DN or ID ofthe requesting handset provided in the find message that was receivedwith the entries in the Find list of the wireless handset. As furtherdescribed below, this determination may be made in order to, maintainprivacy and limit the find capability to only authorized handset users.If the requesting DN is on the Find list, then at step S.1632 thetransmitter of the wireless handset is tuned to the lower frequencyF.sub.li. Otherwise, the find request may be ignored and the handset mayenter back into the Idle state following step S.1630.

After tuning the transmitter at step S.1632, the receiving wirelesshandset sends a found response message to the requesting handset at stepS.1634. In accordance with an aspect of the present invention, the foundresponse message may be sent back to the requesting wireless handsetrepetitively to ensure receipt of the same. For this purpose, the foundresponse message may be sent a predetermined number of times (e.g., Ltimes). Thereafter, at step S.1636, the receiving wireless handset mayactivate a found alerter of the receiving handset so as to provide analert indication to the user of the find request. The alert indicationprovided by the alerter may comprise an alerting signal or tone (such asa ringing signal or tone) and/or a message that is displayed on thehandset. In addition, at step S.1638, the receiving handset may update aFound list so as to indicate that the requesting handset is withinrange. Following step S.1638, the wireless handset may enter an Idlestate.

Referring once again to FIG. 6A, if it is determined that a find messagewas not received at step S.16, then at step S.18 the handset willdetermine whether a memorize message has been received from anotherhandset. As disclosed herein, the wireless handsets of the presentinvention may include a memorize feature that permits handsets toexchange handset information, including handset DN or ID, andcorresponding name. If a memorize message has been received at stepS.20, then logic flow proceeds to step S.22. Otherwise, if a memorizemessage has not been received at step S.20, the handset proceeds to stepS.24 to determine if another type of message has been received.

At step S.22, the called party directory number. DNr is decoded by thereceiver of the handset based on the memorize message that is receivedand it is determined whether the directory number. DNp stored in thewireless handset is the same as or corresponds to the called partydirectory number DNr. If it is determined at step S.22 that DNr=DNp,then at step S.1640 (see FIG. 6D) the wireless handset will set thevalue of a timer i to zero. Otherwise, logic flows back to step S.10, sothat i is modified and the receiver is tuned to a different highfrequency.

As illustrated in FIG. 6D, at step S.1640 the value of a timer i isinitialized and set to, zero. Thereafter, the handset determines at stepS.1642 whether the user has responded by pressing an appropriate key orbutton on the handset (e.g., a memorize key) so as to activate thememorize feature. In accordance with an embodiment of the memorizefeature described herein, the memorize feature must be activated by bothhandsets within a predetermined time window to permit the exchange ofinformation to occur. If the memorize feature is not activated at stepS.1642, then the handset will increment the timer i by one at stepS.1644 and determine at step S.1646 whether the value of the timer i isgreater than or equal to a predetermined time limit i.sub.max. If thevalue of the timer i.sub.max, is less than i.sub.max, then logic flowloops back to step S.1642 to again determine whether the memorizefeature has been activated. Otherwise, if the timer i is not less thani.sub.max, then the time limit for activating the memorize feature hasbeen exceeded and the memorize request is ignored, with the handsetentering the Idle state.

If the user responds and activates the memorize feature at step S.1642,then at step S.1648 the transmitter of the wireless handset is tuned tothe lower frequency F.sub.li. Further, after tuning the transmitter atstep S.1648, the wireless handset sends a memorize response message tothe requesting handset at step S.1650. In accordance with an aspect ofthe present invention, the response message may be sent back to therequesting wireless handset repetitively to ensure receipt of the same.For this purpose, the memorize response message may be sent apredetermined number of times (e.g., L times). Thereafter, at stepS.1652, the receiving wireless handset may activate a memorize successalerter so as to provide an indication to the user of that the memorizefeature has been invoked with the requesting handset. The alertindication provided by the alerter may comprise an alerting signal ortone (such as a ringing signal or tone) and/or a message that isdisplayed on the handset. Following the successful exchange handsetinformation, at step S.1654 the handset may update the speed dial and/orfind lists of the handset with the handset information of the handsetthat sent the memory request. Following step S.1654, the wirelesshandset may enter an Idle state.

As shown in FIG. 6A, if it is determined that a memorize message was notreceived at step S.20, then at step S.24 the handset will determinewhether a short range message has been received from another handset. Asdisclosed herein, the wireless handsets of the present invention mayinclude a short range messaging feature that permits handsets to sendand receive short range messages. If a short range message has beenreceived at step S.24, then logic flow, proceeds to, step S.26.Otherwise, if a memorize message has not been received at step S.24,logic flow loops back to step S.10, so that i is modified and thereceiver is tuned to a different high frequency.

At step S.26, the called party directory number DNr is decoded by thereceiver of the handset based on the short range message that isreceived and it is determined whether the directory number. DNp storedin the wireless handset is the same as or corresponds to the calledparty directory number DNr. If it is determined at step S.26 thatDNr=DNp, then at step S.1660 (see FIG. 6E) the wireless handset willtune the transmitter of the handset to the lower frequency F.sub.li.Otherwise, logic flows back to step S.10, so that i is modified and thereceiver is tuned to a different high frequency.

At step S.1660, the transmitter of the wireless handset is tuned to thelower frequency F.sub.li. As illustrated in FIG. 6E, after tuning thetransmitter at step S.1660, the wireless handset sends a short rangemessage response message to the transmitting handset at step S.1662 toconfirm receipt of the short range message. In accordance with an aspectof the present invention, the response message may be sent back to theoriginating wireless handset repetitively to ensure receipt of the same.For this purpose, the short range message response message may be sent apredetermined number of times (e.g., L times). Thereafter, at stepS.1664, the receiving wireless handset may activate an alerter so as toprovide an indication to the user of that a short range message has beenreceived. The alert indication provided by the alerter may comprise analerting signal or tone (such as a ringing signal or tone) and/or amessage (e.g., “Short Range Message Received”) that is displayed on thehandset. Following step S.1664, the handset may decode the short rangemessage at step S.1668 and, display and/or store the decoded messagewith the handset. The decision to display or store the message may beoptional and/or controlled by the user. Following step S.1668, thewireless handset may enter an Idle state.

As illustrated in FIG. 5, the wireless handset will transition betweenan Idle state and a Conversation state under condition f; that is, whena page message is received and the user answers, the wireless handsetwill transition from an Idle state to a Conversation state. In aConversation state, the wireless handset will operate in a voice mode toprovide full duplex communication between the wireless handsets. Thewireless handset may return to an Idle state under various conditions.For example, as further illustrated in FIG. 5, the wireless handset willreturn to an Idle state from a Conversation state under condition d(when the user indicates that the call is to be ended by pressing, forexample, an end key). A transition from a Conversation state to an Idlestate may also occur where a supervisory signal is lost (this isindicated by condition e in FIG. 5).

When an originating wireless handset initiates a call, the originatingwireless handset will transition from an Idle state to a Paging state.The transition from an Idle state to the Paging state occurs undercondition a, when a user indicates to initiate or start a free call bypressing a send or free key on the wireless handset. In the Pagingstate, the wireless handset essentially functions in a state where itpages another wireless handset based on the directory number ortelephone number entered by the user. Normally, the Paging state isentered from the Idle state according to the conditions described above.More specifically, the trigger to enter the Paging state is when a validhandset or object is chosen and the appropriate key (such as a sendbutton or free call button) is pressed by the user. As illustrated inFIG. 5, the wireless handset may transition back to the Idle state undervarious conditions. Condition b and condition c in FIG. 5 illustrate twosuch examples. In condition b, the wireless handset will transition fromthe Paging state to the Idle state when the called party does not answerthe call request. Additionally, the transition from the Paging state tothe Idle state will occur under, condition c, when no page response hasbeen received by the originating wireless handset. If a page issuccessfully received and the call request is answered by the calledparty, then the wireless handset will transition from a Paging state tothe Conversation state. This condition is depicted in FIG. 5 bycondition h (i.e., page response received and called party answers).

As described above, in a Paging state, the wireless handset pagesanother wireless handset with the appropriate directory number or phonenumber. FIGS. 7A and 7B illustrate an exemplary flowchart of the variousprocesses and operations that may be carried out during a Paging state.Generally, in a Paging state, the wireless handset swaps the transmitand receive frequencies so that other wireless handsets in an Idle statecan listen for pages. If a page is responded to and the called partyenters the Conversation state, the call is set up.

Prior to selecting a channel, the wireless handset may check the channelfor possible interference based on, for example, signal strength. Theexemplary flowchart of FIGS. 7A and 7B illustrate that such checks maybe made until a channel is located that has a signal strength less thanor equal to a predetermined threshold level, THR.sub.rssi. As anadditional measure, the wireless handset may be configured such that itwill terminate analysis of channels for signal strength after apredetermined period of time and provide a warning tone to the user toindicate that no channels are available.

More particularly, as illustrated in FIG. 7A, when entering a Pagingstate, a wireless handset will first prepare or gather the handset phonenumber at step S.30. The called party digits may correspond to thedirectory or phone number of the wireless handset of the called party.At step S.32, the wireless handset will then switch the receiver to thelower frequency band of the duplex pass band and will switch thetransmitter to the higher frequency band. At step S.34, the handset willinitialize a counter i to 1. Then, at step S.36, the receiver of thehandset will be set to the low frequency. F.sub.li and the transmitterwill be tuned to the higher frequency. F.sub.hi.

After tuning the receiver and transmitter, the wireless handset willdetermine at step S.38, whether there is interference in the channel.Interference may be analyzed by determining whether the signal strengthof the channel is not greater than a predetermined threshold. Forexample, at step S.38, the wireless handset may determine whether thereceived signal strength of the channel is less than or equal to athreshold level THR.sub.rssi. If it is not, then at step S.40, the counti may be modified according to the following equation:i=(i+1)mod N

After is reset, logic flow proceeds back to step S.36 so that anotherchannel is tuned to and analyzed for interference.

If the signal strength of the channel is determined to be appropriate,then at step S.42 a counter m is initialized and set to 0. Thereafter atstep S.44 (see FIG. 7B), a synchronization signal is sent by thewireless handset, as well as a paging message at step S.46. The pagingmessage may contain the directory phone number of the called party, aswell as the calling party name or number for caller ID purposes. Ifcaller ID is not equipped in the system, then sending of the callingparty name and number is not necessary in or processed from the pagingmessage.

At step S.48, it is determined whether a page response message has beenreceived indicating that the called party's wireless handset is withinrange. If no page response message is received, then at step S.50 thecounter m is incremented by one and at step S.52 it is determinedwhether m has exceeded a predetermined limit L. If m is less than orequal to the predetermined limit L, then logic flow proceeds back tostep S.44 so that a synchronizing signal and the paging message may beresent. Otherwise, at step S.54, a reorder indication is provided to theuser to indicate that the call request was unsuccessful and that thecall request should be placed at another time. Following step S.54, thewireless handset transitions from the Paging state back to the Idlestate.

As illustrated in FIG. 7B, if a page response message is received atstep S.48, then at step S.56, a ring back tone or another form of signalis provided to the user to indicate that the call request was received.In accordance with conventional wireless handsets, the ring back tonemay, be an audible tone that is provided at the earpiece of the speakerof the wireless handset.

At step S.58, the originating mobile station determines whether thecalled party has answered within a predetermined amount of time. Forexample, a predetermined amount of time (designated as T.sub.alertseconds in FIG. 7B) may be designated to permit the called party toanswer within a certain number of seconds (for example, 20-30 seconds).If it is determined at step S.58 that the called party has not answeredwithin the predetermined period, then the originating phone may returnto an Idle state. Otherwise, if the called party answers within thepredetermined time, then the phone may enter into a Conversation stateto permit full duplex voice communication to be carried out between theparties.

FIG. 8 illustrates an exemplary flowchart of the various processes andoperations that may be carried out by a mobile station when it is in aConversation state. As indicated in FIG. 5, the mobile handset maytransition into the Conversation state from either an Idle state (undercondition f) or from a Paging state (under condition h). A transitionfrom an Idle state to a Conversation state will occur under condition f,when a page has been received and the user answers. A transition from aPaging state to a Conversation state will occur under condition h, whena page response is received and the called party answers. Therefore,both the originating and answering mobile station may enter into aConversation state. The originating handset may transmit on a frequencythat the answering mobile station is tuned to receive and vice versa, inaccordance with the previous descriptions.

At step S.60, the wireless handset that has entered into a conversationstate switches circuitry to transmit and receive voice communicationsignals. Thereafter, at step S.62, a supervisory signal is sent. Thesupervisory signal may be based on the supervisory audio tone (SAT)encoding/decoding circuitry employed by cellular phones. At step S.64,the mobile station then initializes a counter t.sub.s to 0. Thereafter,the supervisory signal is decoded at step S.66.

At step S.68, the mobile station determines whether the supervisorysignal is still present. If the supervisory signal is still present,then the received audio is unmuted at the handset's earpiece at stepS.69 and the mobile handset determines whether an end key is pressed bythe user to indicate end of the conversation at step S.78. If the endkey is pressed by the user or another appropriate key is pressed by theuser to indicate end of the conversation or call, then at step S.80 thehandset switches back to the data circuitry and stops sending thesupervisory signal. Subsequent to step S.80, the mobile handset returnsto the Idle state. If, at step S.78, it is determined that the end keyhas not been pressed by the user, then logic flow proceeds back to stepS.64 where the counter t.sub.s is initialized to 0 once again.

If; at step S.68, it is determined that the supervisory signal is notpresent, then at step S.70 the received audio is muted at the handset'searpiece and at step S.72 t.sub.s is incremented by 1. Thereafter, atstep S.74, it is determined whether a corrupted signal is received for atime period that exceeds a predetermined interval or time. That is, atstep S.74, it is determined whether t.sub.s is greater than or equal tothe maximum interval or time T.sub.Hi. If t.sub.s is greater than orequal to T.sub.Hi then at step S.76 a reorder indicator or tone isprovided to the user to indicate that the signal has been lost.Thereafter, at step S.80, the mobile station switches back to the datacircuitry and stops sending the supervisory signal. This permits thewireless handset to transition back to the Idle state.

If, however, at step S.74 it is determined that t.sub.s is not greaterthan or equal to T.sub.Hi, then logic flow proceeds back to step S.66where the wireless handset attempts to decode the supervisory signal.Thereafter, the mobile station determines whether the supervisory signalis present at step S.68 and, if so, then the Conversation state proceedsas normal (see step S.78). If, however, the supervisory signal is stillnot located, then the received audio is muted at step S.70 and thecounter t.sub.s is incremented again by 1 (see, for example, step S.72).The logic flow then proceeds as discussed above.

In the Conversation state, the mobile station operates on the samefrequencies being used prior to entering the Conversation state. Themodulating circuitry of the mobile station is switched from the datamode to voice mode so that normal voice-band information is transmitted.A supervisory signal that is easily filtered out of the audioinformation is also transmitted to indicate when the link is active orbroken. As discussed above, one example of a supervisory tone or signalthat may be used by the mobile station is the SAT (supervisory audiotone) that is used in analog cellular phones. Another supervisory signalthat may be utilized is the sub-audible data stream used in narrow bandAMPS (IS-91). If the supervisory tone is corrupted for a prolongedperiod of time (i.e., a period of time greater than or equal toT.sub.Hi) then it is assumed that the communication path has been lost.In this case, a reorder indication in the form of, for example, anaudible and/or visual indication, is provided to the user to warn of thesituation and the lost communication path. As discussed above withrespect to FIG. 8, when the Conversation state is terminated or ended,the data circuitry of the mobile station is switched back in and themobile station returns to the Idle state.

As further shown in FIG. 5, the mobile station may transition from theConversation state to the Idle state under different conditions. Thatis, under condition d, the mobile station will transition from theConversation state to the Idle state when the end key is pressed by theuser to indicate that the conversation has ended. This condition istested at step S.78 in FIG. 8. The mobile handset will also transitionfrom the Conversation state to the Idle state when the supervisorysignal is lost, as indicated by condition e in FIG. 5. The testing ofthe supervisory signal is performed at steps S.68-S.74 in FIG. 8. Afterentering the Idle state, the mobile station may reenter the Paging stateor the Conversation state depending on the operational mode or state ofthe mobile station. In addition, the mobile station may enter into otherfeature states depending on the manner in which the mobile station iscontrolled or operated by the user.

That is, when the phone is in the Idle state, as shown in FIG. 5, themobile station may transition to one or more feature states undervarious conditions. In the exemplary state diagram of FIG. 5, conditioni is provided to represent the condition where a user selects anadditional function or state of the wireless handset. These features,including the Traditional Wireless features, Free Call Control features,Find features, List Maintenance features, Conference Call features andother features to be described hereinafter, may be selected by the userto perform various functions. Under such conditions, the handset willenter one of the feature states to permit various functions to becarried out under the command of the user. In FIG. 5, three exemplaryfeature states are shown for purposes of illustration. The illustratedfeature states include a Find Request state, a Memorize Request state,and a Short Range Message state. Aspects and exemplary embodiments ofthese features are further described below with reference to FIGS.39-41. The Find Request state, the Memorize Request state, and the ShortRange Message state may be entered into from the Idle state when theuser selects or activates one of these features, as represented byconditions j, l and n in FIG. 5, respectively. Termination of thefeature states and transition back to the Idle state will occur when thefeature or function is completed under normal conditions or when it isterminated by the user (e.g., when the user indicates to exit or end thefunction or mode). In FIG. 5, this is represented by conditions k, m ando for the Find Request state, the Memorize Request state, and the ShortRange Message state, respectively, and by condition g for the otherfeature state(s) that may be provided in the handset.

One of the feature states that may be selected by the user is a featurestate for Traditional Wireless features, which may include all of thefeatures and functions required of and included in analog or digitalwireless handsets. The set of features that are provided in the wirelesshandset may, of course, vary depending upon the needs of the handsetuser. With such features, the handset may be permitted to operate inaccordance with traditional analog or digital wireless communicationprotocols, or a more enhanced wireless handset may be provided that iscapable of operating in both analog and digital wireless networks. Asdescribed above, the set of features provided as part of the TraditionalWireless features for the handset may include: Caller ID; Caller ID Log;Short Message Service (SMS); Auto. Answer, Choice of Alerts; VibrationAlert; Call Mute; and Large, Scrollable Speed Dial List. Other featuresmay be provided including Computer Connectivity and Control, and Headset(with microphone accessory). Any combination of these features may beembodied in the wireless handset to facilitate traditional analog and/ordigital wireless connectivity. It is also possible that the wirelesshandset of the invention be provided as a special purpose handset withonly direct handset-to-handset functionality, in which case theabove-noted features may be eliminated or modified and provided tosupport direct handset communication. Similar features or overlappingfeatures may also be provided for free call control and other generalfeatures for direct handset-to-handset communication, as furtherdescribed below.

When placing a free call, the wireless handset does not use a cellularor digital network. Instead, such calls are placed directly, from onehandset to another, as illustrated in FIG. 3. Free Call Control featuresmay be provided to enhance and control the operation of the wirelesshandset in connection with direct handset communication. One or more ofthese features could also be utilized in connection with a handsetoperating through Free Call Control features that may encompass bothcall initiate and call receive features, as well as various callinitiate feedback features. Table 1 illustrates an exemplary set of callreceive features that may be implemented with the wireless handset.Further, Table 2 illustrates an exemplary set of call initiate features,and Table 3 illustrates an exemplary set of call initiate feedbackfeatures that may also be provided. Depending on the needs of the user,these features may be modified or only various combinations of thesefeatures may be provided.

TABLE 1 CALL RECEIVE FEATURES Call Intitiate Features Description CallAll calls can be accepted by presenting a predefined key Acceptance(e.g., RCV or TALK) or by pressing almost any key on the handset, withthe exception of main function keys (e.g., END, PWR). Auto Answer Allcalls will be automatically answered by the wireless handset Caller IDThe name and number (ID) of the originator of the call will appear onthe display of the receiving handset. Call Waiting The user will bealerted that another call has been received while the user is using thehandset. The alerting signal (e.g., visual or audible) may be selectedby the user. The user will also be able to switch over to the other calland then back to the original call. Call Mute The call alerting signalfor the incoming calls will be muted without notifying the originatorthat the receiver's handset is not providing an alerting signal. CallReject The alerting signal for an incoming call is muted and the, Withoriginator of Message the call is notified via a short message Messagethat the call was not accepted. The message may be user defined ormultiple predefined messages may be selected. Network The incoming callis rejected with a short message sent to the Voice Message originatorindicating the number of the network Mail voice mail which theoriginator can call by pressing a key Message (e.g., SEND or TALK) ontheir handset.

TABLE 2 CALL INITIATE FEATURES Call Receive Features Description FREEButton A FREE call can be initiated by entering the number of therecipient and pressing a key (e.g., a FREE key) of the handset. Atraditional wireless call using the network may be initiated by using aseparate key (e.g., a SEND key). Auto FREE The handset will redial, acall to another handset (that is Redial initially out of range) untilthat handset comes into range, or for a specified period of time, oruntil the user cancels this feature. Speed Dial The speed dial list canbe scrolled through using arrow keys List on the handset. When an entryis highlighted, the user can press the FREE key to place a directhandset-to-handset call. For traditional wireless network calls, aseparate speed dial list may be maintained or such a list may beintegrated with the speed dial list for free calls. Speed Dial By typingthe first characters of names, the user may quickly List navigate thespeed dial list by having the list jump and Spell-Out display, inalphabetical order, those names in the list beginning with the typedcharacters. Found List The Found list is a list of users who havecompatible wireless handsets that are within range to enable free calls.The list can be scrolled through using the arrow keys on the handset anda call can be pladed to a user highlighted on the list by pressing theFREE key. Emergency When activated, this feature will place a call tothe closest Call handsets automatically to alert those people of anemergency.

TABLE 3 CALL INITIATE FEEDBACK FEATURES Call Initiate Feedback FeaturesDescription Unavailable A message (e.g., “Unavailable”) will bedisplayed on the screen of the call originator handset if the callreceive handset is out of range or is turned off. The option to simplyhit a key (e.g., SEND) and place the call using the wireless networkwill then be given. Ringing A ringing tone will be heard in the earpieceof the call originating handset if the call receive handset is in rangeand can accept the call. The call will continue to ring until it isanswered or until the call originator ends the call or until apredetermined timer expires. The ringing tone for a free call may have adifferent sound then the ringing associated with a traditional wirelessconnection. Busy A busy signal will be heard in the earpiece of the calloriginating handset if the call receive handset cannot accept the callbecause it is in use. Call Reject A message that the call was notaccepted will be Message presented on the handset display if the CallReject With Message was used by the call receive handset. An alert willbe heard in the earpiece of the call originating handset to signal thatthe message is on the display.

In addition to the above-noted features, other features may be providedto facilitate use and operation of the wireless handset. For example, aset of Call In Progress features may be provided for supporting free ordirect handset-to-handset calls. Such features may include a signalstrength or distance indicator which will display the strength of thefree call during the progress of the call, so as to provide to the useran approximate indication of signal strength or distance. Strong signalsmay indicate that the two handsets are close together physically, whileweak signals may indicate that the two handsets are far apartphysically. In addition, a very weak signal alert may be provided, inthe form of a beep, emitted from both handsets, to indicate that thesignal is very weak and may be dropped. Such an alert may be accompaniedby an option to reconnect the call using the wireless network bypressing the SEND key. Other features that may be accessible during callprogress may include: Call Waiting; Memorize; Spontaneous Conferencing;and Short Range Message (including the alerting and retrieval ofmessages).

As indicated above, the wireless handset of the present invention may beimplemented with Find features which enable the user to determine whichhandsets or users are within range for placing a free call. The Findfeatures may include a Find list that is stored in the handset. The Findlist may comprise a list of objects (including other wireless handsetsand items with paging devices or beeping clips) that the handset userwants to find. As further discussed below, the objects on the Find listmay be grouped or categorized.

For privacy reasons, when performing a Find request, the user of therequesting handset will not be able to detect if another handset iswithin range unless that other handset is on the Find list of therequesting handset and the requesting handset is on the Find list of theother handset. Should a handset receive a Find request where therequesting handset is not on its Find list, a message may be displayedto the receiving handset's user asking if the user wishes to add theoriginating handset to their. Find list. If the user accepts, then theywill be “found” at that moment and the originating handset will be addedto the receiver's Find list, as well as the receiver's Speed Dial List,if separate. If the user does not respond to a Find query or message,the message may be kept as a short range message and the user canrespond or delete the message in the future, as desired. Should thereceiving handset's user decline, this message will not be displayedagain upon subsequent requests from that originating handset. In thiscase, if the originating handset is ever in future added to thereceiving handset's list and then deleted, the message will be displayedif that Find request is received again from the handset.

In order to perform a Find request, the wireless handset may be equippedwith a FIND button or key. When pressed, this button may return a listof objects (including other wireless handsets) that are on the Find listand that are within range to perform (if possible) a free call. Thislist, which is returned after performing a Find request, is referred toherein as the Found list. The Found list may display the signal strengthof each object that is within range. If the FIND button is pressed bythe user with an object or a group highlighted on the Speed Dial List orthe Find list, then the handset will only search for that specificobject or objects in that group and return the results in the Foundlist. With the Find request feature of the present invention, which isfurther described below with reference to the accompanying figures, aFind request may take no longer than approximately four seconds todetermine if twenty objects are within range.

In accordance with an aspect of the present invention, a user may wishto configure, their handset to automatically perform a Find request atpreset or predetermined intervals. For this purpose, the Find featuresmay include Auto Find and Auto Find Object features which permit a Findrequest to be performed at preset intervals. These options may beselectively turned ON or OFF by the user. With Auto Find, the wirelesshandset will automatically perform a Find request at preset intervalsand update the Found list. Additional options may be provided to informthe user when there is a change to the Found List through a beepingtone, vibration, a ringing tone, or a change on the display. The AutoFind feature may be interruptible to permit a user to make or receive acall or short message. With Auto Find Object, the user may select aspecific object on the list and automatically perform a find request atpreset intervals that will alert the user if that particular object hasrecently come into range. An additional option will permit the user tobe automatically alerted if that object has recently gone out of range.The Auto Find Object feature may also be interruptible to permit a userto make or receive a call or short message.

As discussed above, the wireless handset of the present invention mayperform a general Find request whereby all objects on the user's Findlist are queried or the handset may perform a specific object Findrequest whereby a specific object or group of objects highlighted on theFind list by the user is queried to, determine if they are within range.Various techniques may be utilized for implementing the general find andspecific object find features of the present invention. For example, allhandsets may be equipped with a separate or dedicated tuner which isalways on a dedicated channel or sets of channels to perform Findrequests. In the alternative, each handset may register on a controlchannel at predetermined intervals when the handset is idle or when thehandset is on a call. In such a case, a separate tuner may not beprovided. In accordance with another embodiment, the handset requestinga Find may transition from an Idle state to a Find Request state, asshown in FIG. 5. While in the Find Request state, the requesting handsetmay utilize a technique similar to the Paging state to indicate theobjects that are being queried. The queried objects may check for Findmessages while in the Idle state. In this state, a procedure similar tothat illustrated in FIGS. 6A-6B may be used to indicate that it iswithin range. Other embodiments and variations are also possible.

FIGS. 39A and 39B illustrate exemplary flowcharts of the variousprocesses and operations in a Find Request state, according to an aspectof the invention. As illustrated in FIG. 5, when initiating a Findrequest to locate an object, the wireless handset will transition froman Idle state to a Find Request state. The transition from an Idle stateto the Find Request state occurs under condition j, when a userindicates to initiate or start a Find request to locate a specifiedobject (e.g., another wireless handset) by pressing an appropriate keyor button on the wireless handset. If the user wishes to determine if aspecific wireless handset is within range, the ID or directory number DNof the handset should be entered or selected through the handset. In theFind Request state, the wireless handset will attempt to locate thespecified handset by transmitting a find message and waiting for aresponse from the specified handset. The wireless handset may transitionback to the Idle state from the Find Request state (represented bycondition k in FIG. 5) after successfully locating the specified objector after failing to locate the specified object. FIGS. 39A and 39Billustrate exemplary flowcharts of the various processes and operationsthat may be performed in a Find Request state when attempting to locatea specified object, such as an another wireless handset.

In particular, as illustrated in FIG. 39A, when entering a Find Requeststate the wireless handset will first switch and/or initialize thetransceiver of the handset at step S.1200 for the Find request. That is,similar to the embodiment of FIG. 6A, N frequency pairs may be assignedto the wireless handset for performing a Find request, with the higherfrequency associated with a duplex channel “i” being designated asF.sub.hi and the lower frequency being designated as F.sub.li. Afterinitializing the transceiver, the wireless handset will collect orgather the information specifying the handset or object to be located atstep S.1202. The collected information may include the directory numberor ID of the wireless handset that the user specified for the Findrequest.

At step S.1204, the wireless handset will switch the receiver to thelower frequency band of the duplex pass band and switch the transmitterto the higher frequency band. Then, as shown in FIG. 39A, the handsetwill initialize the value of a counter i to 1 at step S.1206. Followingstep S.1206, the receiver of the handset will be set to the lowfrequency, F.sub.li and the transmitter will be tuned to the higherfrequency F.sub.hi at step S.1208.

After tuning the receiver and transmitter, the wireless handset willdetermine at step S.1210 whether, there is interference in the channel.Interference may be analyzed by determining whether the signal strengthof the channel is not greater than a predetermined threshold. Forexample, at step S.1210, the wireless handset may determine whether thereceived signal strength of the channel is greater than a thresholdlevel THR.sub.rssi. If it is determined that the threshold has beenexceeded and that there is interference on the channel, then at stepS.1212 the value of the count i may be modified according to thefollowing equation:i=(i+1)mod N

After the value of the counter i is reset, logic flow proceeds back tostep S.1208 so that another channel is tuned to and analyzed forinterference.

If the signal strength of the channel is determined to be acceptable atstep S.1210, then a counter m may be initialized and set to 0 and atstep S.1214 (see FIG. 39B) a synchronization signal may be sent by thewireless handset. After synchronization, the wireless handset maytransmit a find message over the channel at step S.1216. The findmessage may include the directory number of the object or handset thatis being queried. In addition, the find message may include thedirectory number of the requesting handset and/or the name of the userthat requested the find request. Following step S.1216, the wirelesshandset will wait for a response to determine if the queried object iswithin range.

In particular, at step S.1218, the wireless handset will determinewhether a find response message has been received indicating that thequeried object is within range. If no find response message is received,then at step S.1220 the counter m is incremented by one and at stepS.1224 it is determined whether m has exceeded a predetermined limit L.If m is less than or equal to the predetermined limit L, then logic flowproceeds back to step S.1214 so that a synchronizing signal and the findmessage may be resent. Otherwise, at step S.1226, a find failureindication may be provided to the user to indicate that the find requestwas unsuccessful. Following step S.1226, the wireless handset maytransition from the Find Request state back to the Idle state, asillustrated on FIG. 39B.

If a find response message is received at step S.1218, then at stepS.1228 the requesting handset will update the status of the queriedobject in the handset's Found list in order to indicate that the queriedobject is within range. Further, at step S.1230, the handset willmeasure the signal strength of the response message from the queriedobject and update the corresponding signal strength information in theFound list. The found status of the specified object and the measuredsignal strength may also be indicated or displayed to the user of therequesting handset to notify the user of this information. Followingstep S.1230, the find routine may terminate and the handset maytransition from the Find Request state back to the Idle state.

In accordance with other embodiments of the invention, FIGS. 9-12 areexemplary flowcharts of the various processes and operations that may beperformed for carrying out a general Find request for other wirelesshandsets. In addition, FIGS. 13-16 illustrate various embodiments forcarrying out a specific object Find request for a specific wirelesshandset user with the present invention. Each of these embodiments aredescribed in greater detail below. In particular, FIGS. 9A and 9B areexemplary flowcharts of the various processes and operations that may becarried out for performing a general Find request by utilizing adedicated separate tuner. According to the embodiment of FIGS. 9A and9B, each handset is equipped with a separate tuner that is always on apredetermined dedicated channel. Such a tuner is provided in addition toa tuner for establishing and providing communication with otherhandsets. FIG. 9A illustrates an exemplary logic flow for a handset(i.e., handset “A”) that initiates the general Find request. FIG. 9Billustrates the exemplary logic flow of operations performed by eachhandset that is on the Find list of handset A. In the exemplaryflowcharts of FIGS. 9A and 9B, list_count represents or designates to anentry in the Find list of handset A, and ID#list_count is the ID of thehandset or object stored in an entry of the Find list.

As shown in FIG. 9A, a general find request is initiated by the user ofhandset A at step S.90 when the user. A presses a predetermined key onthe handset (hereinafter referred to as a “FIND key”) with no object orhandset specifically highlighted or selected on the Find list. Inresponse, at step S.92, the value of a list_count is initialized and setto one. Further, at step S.94, the handset initializes the value of await_clock to 0. After initializing the values of the counters, thehandset A queries the first entry in the Find list. In one embodiment,the handset includes a separate tuner that is always on a dedicatedchannel, the find request or query is sent or transmitted by the tuneron the dedicated channel. The find query may include the ID of thehandset specified by the entry in the Find list corresponding to thevalue of the list_count (initially set to one) and also includes the IDof handset A to indicate that the query is from handset A. The findquery message may be transmitted based on any message structure protocolthat is suitable for carrying and supporting such information elements.Further, the message structure that is utilized may incorporate paritybits or other techniques for error detection and correction. In anotherembodiment, the handset enters the Find Request state from the Idlestate (see FIG. 5). While in the Find Request state, the requestinghandset searches for an interference-free channel to send the query.

As further shown in FIG. 9A, the handset at step S.98 determines whethera response has been received. In accordance with an aspect of thepresent invention, handset A may dwell and wait for a predetermined timefor a response from the queried handset before moving on to the nextentry in the Find list. As such, if a response is not received at stepS.98, then at step S.100 it is determined whether the value of thewait_clock is greater than or equal to the value of a predetermined waittime. If the wait time is not exceeded at step S.100, then logic flowloops back to step S.98. Otherwise, if the value of the wait_clock isgreater than or equal to the wait time, then logic flow proceeds to stepS.104.

If it is determined that a response is received at step S.98, then atstep S.102 the Found list of handset A is updated with the ID of thehandset that responded. In addition to indicating the ID number of thehandset, the name of the handset and the signal strength (SS) of thathandset may be indicated and stored in the Found list. The relativesignal strength may be indicated by a numeric value, code or symbol.Further, various conventional techniques may be utilized for detectingand preparing the signal strength. The Found list may be activelydisplayed and updated for viewing by the user as each response isreceived or the Found list may be displayed only after each entry in theFind list has been queried.

After updating the Found list at step S.102, the handset determines atstep S.104 whether all of the entries in the Find list have beenqueried. That is, at step S.104, the handset determines if the value ofthe list_count equals the end of the Find list. If the end of the Findlist has not been reached, then at step S.106 the value of thelist_count is incremented by 1 and logic flow proceeds back to stepS.94. Otherwise, if the list_count equals the end of the Find list, thenat step S.108 the entire and complete Found list is displayed to theuser A. At step S.108, an alerting signal (e.g., a beep or message onthe display) may be provided to alert the user that the find request hasbeen completed. After displaying the Found list at step S.108, the findrequest routine terminates at step S.110.

As mentioned above, FIG. 9B is an exemplary flowchart of the variousprocesses and operations that are carried out by each handset whenreceiving a find query or request from handset A. In one embodiment,each handset includes a separate or dedicated tuner that is always on apredetermined channel and that monitors the same for find requests.Steps S.112 through S.120 generally represent the functions performed bya responding handset. In particular, at step S.112, the handset isactive and performing other functions according to the featuresimplemented by the user. If the dedicated tuner detects that a findrequest or query has been received at step S.114, then at step S.116 thehandset will temporarily store the ID (i.e., the ID of handset A) inmemory. The ID of handset A is then compared with the Find list of thehandset to determine if the particular ID is on the list. If it isdetermined at step S.118 that the ID of handset A is on the Find list,then a positive response is transmitted at step S.120 by the tuner onthe dedicated channel. The response message that is transmitted at stepS.120 may include the ID of the responding handset and the ID of thehandset to which the positive response is directed. The positiveresponse message may be transmitted based on any message structure andprotocol that supports these information elements.

In another embodiment, the same or a similar functional process isimplemented. However, a group of channels are scanned and a channelhaving acceptable interference levels is selected in accordance, forexample, with the procedures described herein with reference to FIGS. 5,6A, 6B, 30A and 30B. This embodiment is better suited for use with thehandset when it is implemented with analog cellular handset circuitry.

As further shown in FIG. 9B, after transmitting a positive response atstep S.120, logic flow proceeds back to step S.112, so that otherhandset functions may be performed. Logic flow will also return to stepS.112 when a find request is not detected at step S.114 or when it isdetermined that the ID of the querying handset (i.e., handset A) is noton the Find list at step S.118.

In the embodiment of FIGS. 9A and 9B, each handset utilizes a separatetuner which is always on a dedicated channel. When a find command isgiven, the handset uses the dedicated channel to contact all otherhandsets sequentially to determine if they are within range. Onlyhandsets that are on the list of the handset A will be queried todetermine if they are in the area. Further, only handsets that are onthe list of handset A, have handset A on their list, and are withinrange will respond to the query, as indicated above. As such, onlyhandsets that have given handset A permission to find them will respond.Further, according to this embodiment, since the handset utilizes adedicated or separate tuner, find queries can Occur when the handset ison a call with another handset without disruption of any call. Thus, inthe exemplary flowchart of FIG. 9B, each handset may check to determineif a find query has been received on the dedicated channel even if otherhandset functions are being performed at the same time. That is, stepS.112 may be performed concurrently with the operations performed atsteps S.114 through S.120 in FIG. 9B. Further, in this embodiment,handset A may query all handsets on the Find list sequentially and,therefore, the total query time will be dependent upon the length of theFind list of handset A.

In accordance with another embodiment of the present invention, FIGS.10A and 10B are exemplary flowcharts for performing a general findquery. The embodiment of FIGS. 10A and 10B does not require the use of adedicated or separate tuner. Instead, according to this embodiment, allhandsets register on a control channel at predetermined time intervals(e.g., every “x” minutes or seconds). This registration on the controlchannel may occur when the handset is idle and when the handset is on acall. Registering during a free call will disrupt the call for a shortperiod of time, since the handset utilizes the same tuner required forthe free call. The registry message may include the ID of theregistering handset and a list of other handset IDs that are on the Findlist of the registering handset. When user. A initiates a find query bypressing the FIND key, the handset of user A will tune to the registrychannel and listen for the predetermined time interval (i.e., for “x”minutes or seconds). For those handsets that are on the Find list ofhandset A, handset A will check to ensure that handset A is on theirlist. FIG. 10A is an exemplary flowchart of the various processes andoperations that may be performed by handset A (i.e., the handsetoriginating the find request), and FIG. 10B is an exemplary flowchart ofthe processes and operations that may be carried out by each of thehandsets that are on the Find list of handset A.

As shown in FIG. 10A, at step S.124 a general find request is initiatedby user A when the FIND key is pressed on the handset with no specificobject or handset on the Find list being selected or highlighted. Inresponse to the FIND key being pressed at step S.124, the handset A willinitialize and set the value of a cycle_clock to zero at step S.126.Thereafter, at step S.128, the handset tunes to the predeterminedcontrol or registry channel. At step S.130, the handset then determineswhether a response or message is received on the registry channel. Asindicated above, according to this embodiment, all handsets register onthe control or registry channel in accordance with a predetermined cycletime (e.g., every “x” minutes or seconds). As such, the handset of userA will dwell and wait for the duration of one cycle time to determine ifeach entry in the Find list is within range. Thus, if it is determinedat step S.130 that a response has not been received, then at step S.132it will be determined if the cycle_clock is greater than or equal to thepredetermined cycle time. The cycle_clock may be incremented inaccordance with an internal system clock of the wireless handset. Thevalue of the cycle_clock will, thus, maintain the elapsed time of thefind query.

If it is determined that the cycle time has not been elapsed at stepS.132, then logic flow, proceeds back to step S.130. If a response isdetected at step S.130, then at step S.134 the registry, message of thehandset that sent the response (i.e., “handset X”) is recorded. Inparticular, at step S.134, the registry message is temporarily recorded,including the ID of the handset X and the list of other handset IDs thatare on the Find list of handset X. In addition, the measured signalstrength (SS) of the registry signal may be recorded by handset A.Thereafter, at step S.136, it is determined whether the ID of handset Xis on the Find list of handset A. If handset X is on the Find list ofhandset A, then at step S.138 it is determined whether the ID of handsetA is on the Find list of handset X based on the information recordedfrom the detected registry message. If it is determined that handset Ais on the list of handset X, then at step S.140 the ID of handset X isadded to the Found list of handset A, along with the corresponding namefor user X and the signal strength (SS). Thereafter, logic flow returnsto step S.132. If the cycle time has not expired at step S.132, thenadditional responses that are received from other users on the registryor control channel are analyzed and (if proper) added to the Found listin accordance with steps S.134 through S.140.

When the cycle time has elapsed or been exceeded at step S.132, logicflow proceeds to step S.142 where the complete Found list is displayedto the user A. Once again, an alerting signal (such as an audible beeptone or message on the handset display) may be provided to the user toindicate that the general find query has been completed. Alternatively,the information from the Found list could be updated and displayed tothe user after every successful find query by adding a “found” icon ormessage next to each item on the Find list as they are located or, bycreating a second list of those objects that were found. Following stepS.142, logic flow proceeds to step S.144 where the routine terminates.

FIG. 10B is an exemplary flowchart of the various processes andoperations that may be carried out by each handset (i.e., handset X)registering on the registry control channel. As discussed above, in theembodiment of FIGS. 10A and 10B, all handsets register on apredetermined control channel every x minutes or seconds. Each handsetmaintains a cycle_clock, which monitors the elapsed time and is used todetermine when the cycle time or period has elapsed. More particularly,as shown in FIG. 10B, when not registering on the registry channel, thehandset X performs other functions at step S.150. Concurrently with theperformance of other handset functions or upon completion of a handsetfunction, the handset determines at step S.152 whether the value of thecycle_clock is greater than or equal to the predetermined cycle time. Ifthe cycle time has elapsed or been exceeded, then at step S.154 thehandset will tune to the registry channel and transmit the ID Of thehandset and the list of other handset IDs that are on the Find list forthe handset. As indicated above, the registration on the registrycontrol channel may occur when the handset X is idle or when the handsetis on a call. As such, registering during a free call will disrupt thecall for a short period of time since the same handset utilizes thetuner required for the call.

Following step S.154, the handset X at step S.156 will reset the valueof the cycle_clock to zero. Thereafter, the cycle_clock will beincremented in accordance with the system clock of the handset so as tokeep track of the elapsed time and so that the value of the cycle_clockmay be evaluated to determine each cycle period. Following step S.156,logic flow proceeds back to step S.150 and the operations at steps S.152through S.156 are repeated. As further shown in FIG. 10B, logic flowwill loop back to step S.150 whenever it is determined at step S.152that the cycle_clock is not greater than or equal to the predeterminedcycle time.

In the embodiment of FIGS. 10A and 10B, a dedicated tuner is notrequired for each handset. However, each handset is required to registeron a registry channel in accordance with a predetermined cycle time(i.e., every x minutes or seconds). The total time required to perform afind request is approximately equivalent to the cycle time, no matterhow long or short the Find list is for the handset, unless the handsettunes to the registry channel while idle. The length of the cycle timemay be preset or variably set by the user or by elements in the wirelessnetwork. In either case, the length of the cycle time should be setbased on the number of handsets that could be registering in aparticular area and the size of the list that each handset could betransmitting on the registry channel. By requiring all handsets totransmit their associated Find lists, comparisons between the lists canbe made to, ensure that handset A is on the list of handset X and viceversa, without having to contact handset X directly. For registrationsthat occur during a free call, two potentially long disruptions mayoccur. These disruptions are required while each handset registers andtransmits its list on the registry channel every cycle period. Thelength of the disruption is dependent upon the length of the listtransmitted.

Various modifications may be made to the embodiment of FIGS. 10A and10B. For example, a procedure may be included in FIGS. 10A and 10B toprovide for collision detection and/or collision correction. A collisionmay occur when one handset tries to register while another handset isregistering on the registry channel. As further described below, bymonitoring and listening to the registry channel, each handset may avoidsome collisions by ceasing transmission and waiting a randompredetermined period of time and retransmitting whenever a collisions isdetected on the registry channel. Mother feature may be added whereby anidle handset can tune to the registry channel and maintain updates onthe handsets on its lists so, that when the FIND key is pressed, thehandset is able to immediately inform the user, of the list update. Sucha feature could also enhance the operation of the find procedure.

FIGS. 11A and 11B illustrate another embodiment for providing a generalfind request. The embodiment of FIGS. 11A and 11B combines theadvantages of the embodiment of FIGS. 9A and 9B and the embodiment ofFIGS. 10A and 10B. As further discussed below, in the embodiment ofFIGS. 11A and 11B, all handsets register on a control channel every xminutes or seconds. The registry occurs when the handset is idle andwhen the handset is on a call. Registering during a free call willdisrupt the call for a short period of time, since the handset utilizesthe tuner required for the free call and does not include a separate ordedicated tuner for performing the registration. The registry includesthe ID of the handset and the frequency at which the handset can becontacted. If the handset is on a free call, the registered frequencywill be the frequency of the call. If the handset is idle or on acellular or PCS call, the registry frequency will be the frequency ofthe dedicated control channel. When user A initiates a general findrequest by pressing the FIND key, the handset will tune to the registryor control channel and will listen for a duration corresponding to thecycle time (i.e., x minutes or seconds). For those handsets that areregistered on the registry channel, handset A will contact them directlyon the frequency specified in the registry. Only handsets that are onthe list of handset A and that are on the registry channel will bequeried. Further, only handsets that are queried, have handset A ontheir Find list, and are within range will respond to the query. Thus,only handsets that have given handset A permission to find them willrespond. FIG. 11A is an exemplary flowchart of the various processes andoperations that may be performed by the handset performing the generalfind request (i.e., handset A), and FIG. 11B is an exemplary flowchartof the various processes and operations that may be performed by eachhandset that registers on the dedicated control channel (i.e., handsetX).

As shown in FIG. 11A, the general find request is initiated at stepS.160 when user A presses the FIND key, of the handset with no specificobject or person selected on the Find list. Thereafter, at step S.162,the handset tunes to the registry or control channel. Then, at stepS.164, the value of the cycle_clock is initialized and set to 0.Following step S.164, the handset A listens to the control channel forresponses at step S.166.

If a handset registry response is not received at step S.168, then atstep S.174 the handset checks to see if the predetermined cycle time haselapsed or been exceeded. In particular, the value of the runningcycle_clock is compared with the cycle time, to determine if the valueof the cycle_clock is greater than or equal to the cycle time. If thecycle_clock is less than the cycle time, then logic flow loops back tostep S.168 to once again determine if a registry message has beenreceived.

When a handset registry response is received at step S.168, then logicflow proceeds to step S.170 where the registry information is analyzed.In particular, at step S.170 it is determined whether the ID of thehandset X (which registered) is on the Find list of the handset A. Ifuser. X is not on the Find list, then logic flow proceeds to step S.174.If, however, user X is on the Find list, then at step S.172 the ID ofuser X and the frequency or channel number contained in the registry aretemporarily recorded in a separate list. As noted above, information inthe registry may include the ID of the handset which registered, as wellas the frequency at which that handset can be contacted. Following stepS.172, logic flow proceeds back to step S.174.

After the cycle time has elapsed or been exceeded at step S.174, thehandset will set the value of a list_count to one at step S.176. Thevalue of the list_count represents an entry, in the temporary list ofthe handset A. As shown in FIG. 11A, following step S.176 the handsetwill attempt to directly query and contact each of the handsets in thelist which registered on the registry channel based on the frequencythat was specified. Thus, only the handsets that are on the Find list ofhandset A and that are detected to be on the registry channel will bequeried. Further, as discussed below with reference to FIG. 11B, onlyhandsets that are queried, have handset A on their Find list, and arewithin range will respond to the query.

In particular, at step S.178 in FIG. 11A, the handset will tune to thespecified channel or frequency of the handset identified by the value ofthe list_count in the Find list or temporary list of user. A. Then, atstep S.180 the handset will be queried with the ID of handset A beingspecified. The value of a wait_clock is then set to zero at step S.182and it is determined at step S.184 whether a response message isreceived from the queried handset. The handset A will wait for apredetermined time to see if a response is received. Thus, if a responseis not received at step S.184, logic flow proceeds to step S.186 wherethe value of the wait_clock is compared with the predetermined waittime. The wait_clock may be stored in the handset and incremented inaccordance with the system clock to keep a running count of the waittime. If the value of the wait_clock is less than the wait time, thenlogic flow proceeds back to step S.184. When a response is received atstep S.184, the response is recorded along with the detected signalstrength (SS) at step S.188. Thereafter, at step S.190, the ID of theresponding handset X and the corresponding name for the user. X with thesignal strength is updated to the Found list. Logic flow then proceedsto step S.192, as shown in FIG. 11A.

When it is detected at step S.186 that the value of the wait_clock isgreater than or equal to the predetermined wait time, logic flowproceeds to step S.192 where it is determined whether the end of thelist has been reached. In particular, at step S 192 the value of thelist_count is compared with the number of entries in the Find list ortemporary list stored in handset A. If the list_count equals the end ofthe list, then the complete Found list is displayed to the user at stepS.196. Thereafter, the routine terminates at step S.198. If, however,the end of the list is not reached at step S.192, logic flow proceeds tostep S.194 where the value of the list_count is incremented by one andlogic flow proceeds back to step S.178, so that other handsets on thelist may be directly queried. Thereafter, logic flow proceeds asdescribed above at steps S.178 through S.192.

FIG. 11B is an exemplary flowchart of the processes and operations thatmay, be performed by each queried handset (i.e., handset X). Inparticular, after performing other handset functions at step S.200, thehandset X checks to determine if the cycle time has elapsed at stepS.202. In this regard, a cycle_clock may be maintained that keeps arunning time in accordance with an internal system clock of the handset.When it is detected that the cycle_clock is greater than or equal to thepredetermined cycle time, then at step S.204 the handset X will tune tothe registry channel. Then at step S.206, registration will be performedby transmitting the ID of the handset X and the channel or frequency atwhich the handset can be contacted. As described above, if the handsetis on a free call when performing a registration, the frequency that isspecified may be the frequency of the call. If, however, the handset isidle or on a cellular or PCS call, the specified frequency may be thefrequency of a dedicated control channel.

After registering on the registry channel, the handset X will tune backto the original or previous channel at step S.208. Thereafter, at stepS.210, the cycle_clock will be reset to zero so as to count anothercycle time (e.g., another x minutes or seconds). Following step S.210,logic flow proceeds to step S.212. Further, as shown in FIG. 11B, logicflow will proceed to step S.212 from step S.202 whenever it isdetermined that the cycle_clock is less than the predetermined cycletime.

At step S.212, the handset X will evaluate and determine whether a findquery has been received on the frequency or channel that was specifiedby the handset in the registry message. If a find query is not detected,then logic, flow proceeds back to step S.200 where other handsetfunctions are performed. If, however, a find query is received, then atstep, S.214 the handset X determines if the ID of handset A (which iscontained in the find query) is on the Find list of the handset X. Ifhandset A is on the Find list, then a positive response is transmittedat step S.216. The positive response may include the ID of handset X.Following step S.216, logic flow proceeds back to step S.200. Further,if handset A is not on the Find list of handset X, then logic flow willalso proceed back to step S.200 from step S.214.

Although not depicted in the flow charts of FIGS. 11A and 11B, if twohandsets (for example, handset A and handset B) are on a free call, thehandsets may register sequentially on the control channel. FIG. 11Cillustrates this principle. That is, since most of the time to registeris occupied in tuning to the registry channel, synchronizing with theregistry channel, and then tuning back to the voice channel of the freecall, conversational time can be saved by registering sequentially. InFIG. 11C, handset A and handset B are represented as sequentiallyregistering on a control channel relative to time, with handset Bregistering sequentially to handset A. As a result, the total time spentaway from the conversation and the free call is the total time to tunetwice, sync twice and register twice. If the tune and sync times werenot overlapped as illustrated in FIG. 11C, the total time spent awayfrom a conversation would be the required time to tune four times, syncfour times and register twice. As a result, by registering sequentially,the disruption of the free call can be minimized.

As discussed above, free calls that are established withhandset-to-handset communication may utilize time domain multiplexing.Therefore, when handset A needs to find another handset (e.g., handsetB) that is on a free call, handset A will tune to the channel in whichhandset B is conducting a voice conversation. As explained above, thischannel will be specified by the handset when registering on theregistry or control channel. When directly contacting handset B, handsetA will transmit on a control time slot of the specified channel arequest to handset B to check its Find list, and receive on the controltime slot of the channel the response if handset A is on the Find listof handset B. Further information regarding time domain multiplexing andcontrol time slots is provided below with reference, for example, to thedescription of the conferencing features of the present invention.

Various additional procedures or modifications may be made to theembodiment of FIGS. 11A and 11B. For example, an idle handset can tuneto the registry channel and maintain updates on the handsets on its Findlist, so that when the FIND key is pressed by the user, the directqueries of the handsets can be performed while shortening the timerequired for a find procedure. Further, as discussed above withreference to the embodiment of FIGS. 10A and 10B, procedures forcollision detection and/or collision correction may be included in theembodiment of FIGS. 11A and 11B.

As detailed above, the embodiment of FIGS. 11A and 11B does not requirea dedicated or separate tuner to be provided in each of the handsets.Instead, handsets register on a control channel according to a cycletime (e.g., every x minutes or seconds). A registry occurs when thehandset is idle and when the handset is on a call. A disruption on afree call is required while both handsets register and sequentiallytransmit their frequency on the registry channel every cycle period. Thelength of this disruption should be less than that in the embodiment ofFIGS. 10A and 10B, since the Find list of the handset does not need tobe transmitted. Further, conversational time is improved if two handsetson a free call register sequentially. The registry message may includethe ID of the handset and the frequency on which the handset can becontacted. Time domain multiplexing also allows the handsets on a freecall to be queried directly on the channel while the call is occurring.With time domain multiplexing a control time slot may be utilized forquerying the handset. The total time required for a find procedureincludes the cycle period plus the time required to directly contact theother handsets that are within range, unless the handset tunes to theregistry channel while idle. In such a case, the time required for afind procedure is only the time to directly contact the handsets thatare within range.

FIGS. 12A and 12B illustrate another embodiment of the present inventionfor performing a general find request. The embodiment of FIGS. 12A and12B combines the advantages of using a registry and a dedicated channel.In particular, the embodiment does not require a dedicated or separatetuner, but instead each handset registers on a control or registrychannel according to a predetermined cycle time (i.e., every x minutesor seconds). This registry occurs when the handset is idle and when thehandset is on a call. The registry consists of the ID of the handset,the frequency at which that handset can be contacted, and the time slotin which the handset can be contacted if it is on a call. The onset ofthis time slot is communicated as an offset from the time that theregistration occurred. If the handset is on a free call, the specifiedfrequency will be the frequency of the call and the time slot will bethe time that the other handset registers. If the handset is idle or ona cellular or PCS call, the specified frequency will be the frequency ofthe dedicated control channel and the time slot will be any time.

In the embodiment of FIGS. 12A and 12B, when user A presses the FIND keyon the wireless handset, the handset will tune to the registry channeland listen for a duration equal to the cycle time (i.e., for x minutesor seconds). Each handset that is registered on the registry channelwill be contacted directly by the handset A based on the frequency andtime frame specified in the registry message. Only handsets that are onthe Find list of handset A and that are on the registry channel will bequeried. Further, only handsets that are queried, have handset A ontheir respective Find list, and are within range will respond to thequery. As such, only handsets that have given handset A permission tofind them will respond.

FIG. 12A is an exemplary flowchart of the various processes andoperations that may be performed by the handset that initiates thegeneral find procedure (i.e., handset A). Further, in accordance with anaspect of the invention, FIG. 12B is an exemplary flowchart of theprocesses and operations carried out by each handset (i.e., handset X)to register on the control channel and to respond to find queries. Adetailed description of FIGS. 12A and 12B will now be provided.

As shown in FIG. 12A, a general find request is initialized when user Apresses the FIND key of the handset at step S.220, with no object orhandset selected or highlighted on the Find list. Thereafter at stepS.224, the handset tunes to the registry channel. Further, at stepS.226, the value of a cycle_clock is initialized and set to zero.Thereafter, the cycle_clock may be incremented in accordance with aninternal system clock of the handset, so that the elapsed time can bemonitored. At step S.228, the handset listens to the registry channel todetect other handsets which have registered.

At step S.230, it is determined whether a handset response is receivedover the registry channel. If a handset registry is not received, thenlogic flow proceeds to step S.236. At step S.236, the cycle_clock iscompared with the predetermined cycle time. If it is determined that thecycle time has elapsed or has been exceeded, then logic flow proceeds tostep S.238. Otherwise, logic flow loops back to step S.230, where thehandset continues to listen and determine whether a handset registryresponse is received.

When a handset response is received, handset A first checks to determinewhether the ID of the handset X (which registered on the controlchannel) is on the Find list of the handset A. If the handset X is noton the Find list, then logic flow proceeds back to step S.236, where thecycle time is again evaluated. If, however, the handset X is on the Findlist, then at step S.234 the registry message is temporarily recorded.In particular, at step S.234, the ID of handset X and the specifiedchannel or frequency at which the handset X can be contacted istemporarily stored in memory in a separate temporary list. Further, thespecified time slot (if present in the registry message) is recorded atstep S.234. Following completion of step S.234, logic flow proceeds backto step S.236, where the cycle time is again evaluated.

When the value of the cycle_clock is equal to or greater than the cycletime, logic flow proceeds from step S.236 to step, S.238. At this point,the handset A will set the value of a list_count to one and then proceedto step S.240 to tune to the specified frequency or channel for thehandset of the entry of the Find list or temporary list corresponding tothe value of the list_count (initially, the first entry in the list).Then, at step S.242, the handset A will query the handset identified bythe list_count. The query message may include the ID of the handset A,and may be transmitted in accordance with the specified time slot (ifrequired). At step S.244, the handset will set the value of a wait_clockto zero and thereafter wait for predetermined time at steps S.246 andS.248 for a positive response. The wait_clock may be incremented inaccordance with an internal system clock of the handset to keep track ofthe elapsed time. If the value of the wait_clock is greater than orequal to the predetermined wait time, then logic flow will proceed fromstep S.248 to S.254. Otherwise, the handset will return and again testat step S.246 as to whether a response to the query is received. When apositive response is received from handset X, the handset A will recordthe response and the detected signal strength (SS) at step S.250. TheFound list will then be updated at step S.252 with the ID of theresponding handset (i.e., the ID of handset X) and the correspondingname of the user. X with the detected signal strength (SS). Followingstep S.252, logic flow will proceed to step S.254.

At step S.254, it is determined whether the end of the temporary listhas been reached. This determination is made by the handset by comparingthe value of the list_count to the total number of entries in the List.If the list_count equals the end of the list, then the complete Foundlist is displayed to the user A at step S.257. Thereafter, the generalfind routine terminates at step S.259. If it is determined that thelist_count does not equal the end of the list at step S.254, then logicflow proceeds to step S.256, where the value of the list_count isincremented by one so that additional handsets which registered and areon the List may be directly queried. Logic flow then proceeds to stepS.240, where the handset tunes to the specified channel for the nexthandset to be directly queried. Logic flow then proceeds at steps S.242through S.259, as described above.

FIG. 12B is an exemplary flowchart of the operations that may beperformed by each handset (i.e., handset X) that registers on thecontrol channel and transmits positive responses to handset A. Whendirectly queried at step S.260, the handset X performs other functions.After performing other handset functions or concurrently withperformance of other handset functions, the handset X detects whetherthe value of a cycle_clock is greater than or equal to the predeterminedcycle time at step S.262. As noted above, each handset will register onthe control channel in accordance with a predetermined cycle time (i.e.,every x minutes or seconds). The cycle_clock may be maintained to keeptrack of the elapsed time and may be incremented in accordance with aninternal system clock of the handset. When it is determined that thecycle time has elapsed or has been exceeded, logic flow proceeds to stepS.264 where the handset tunes to the control or registry channel.Thereafter, at step S.266, registration is performed by transmitting theID of the handset X and specifying the channel or frequency at which thehandset can be contacted. At step S.266, the handset may also transmitthe time slot in which the handset can be contacted if it is in on acall. As described above, the onset of the time slot may be communicatedas an offset from the time that the registration occurred. Followingstep S.266, the handset X tunes to the previous channel of the call (ifnot idle) at step S.268 and, at step S.270, the value of the cycle_clockis set to zero. Logic flow then proceeds to step S.272. Further, asshown in FIG. 12B, logic flow will proceed to step S.272 from step S.262when it is determined that the cycle time has not elapsed.

At step S.272, the value of the cycle_clock is compared with the valueof the slot start time and the slot end time. In particular, at stepS.272, it is determined whether the cycle_clock is greater than or equalto the slot start time and less than or equal to the slot end time. Ifboth of these conditions are satisfied, then at step S.274 the handsetdetermines whether a find query has been received on the specifiedchannel during the required time slot. If a find query has beenreceived, then at step S.276 it is determined whether the ID of thehandset A (provided in the find query message) is on the Find list ofthe handset X. If handset A is on the Find list of handset X, then apositive response is transmitted at step S.278. Thereafter, logic flowloops back to step S.260, whereby the entire procedure is repeated. Asshown in FIG. 12B, logic flow will also proceed back to step S.260 ifany of the conditions in steps S.272, S.274 and S.276 are not satisfied.Further, step S.272 may be skipped when a time slot has not beenspecified by handset X in the registry.

In the embodiment of FIGS. 12A and 12B, registering during a free callwill disrupt the call for a short period of time, since the handsetutilizes the same tuner required for the free call. In particular, twodisruptions on a free call are required while each handset registers andtransmits its frequency and slot time on the registry channel. Thelength of each disruption should be less than that required in theembodiment of FIGS. 10A and 10B, since the handset does not need totransmit its Find list. As described above, the registry message mayinclude the ID of the handset, the specified frequency for contactingthe handset, and the time slot (offset) when the handset can becontacted. Unlike the embodiment in FIGS. 11A and 11B, two, handsets ona free call may not register sequentially. Further, time domainmultiplexing is not required. Generally, the time required for a generalfind procedure to be executed is the time of the cycle time (x minutesor seconds) plus the time to directly contact the handsets that arewithin range, unless the handset tunes to the registry channel whileidle. In such a case, the time required for a find is only the time todirectly contact the handsets that are within range. In particular, anidle handset can tune to the registry channel and maintain updates onother handsets on its Find list, so that when the FIND key is pressed,the direct queries of the handsets can begin without listening for thepredetermined cycle time; and, thus, shortening the overall timerequired for a find procedure.

As explained above, in the embodiment of FIGS. 12A and 12B, the handsetsmay not register sequentially. Instead, handsets that are on a callshould register at non-overlapping times during the cycle time in orderto provide the time required to respond to find queries of otherhandsets during the time slot. During a call set-up, the two handsetsmay exchange the time they will each register. Further, the time thatthe other handset registers may be defined as the slot time. If acollision occurs, the registry time, slot time and the cycle time willneed to be renegotiated. The main advantage of this technique is thattime domain multiplexing is not required. However, as indicated above,two disruptions will occur during the cycle time instead of only one.

In addition to performing a general find request for all objects on theFind list of a handset, the wireless handsets of the present inventionmay also be implemented to perform a specific find request. A specificfind request may be performed to determine if a specific handset iswithin range. To perform a specific find request, a user may press theFIND key of the handset with one of the entries in the Find list beinghighlighted. As with the general find request, the specific find requestmay be implemented by utilizing a dedicated or separate tuner or throughthe use of a registry channel. FIGS. 13-16 illustrate variousembodiments and implementations for performing a specific find request.In order to perform the various functions and operations outlined in theFIGS. 13-16, each handset may be implemented with any suitablecombination of hardware, firmware, programmed logic, and/or software. Adetailed description of each of the embodiments for performing aspecific find request will now be described.

FIGS. 13A and 13B illustrate an embodiment of the invention forperforming a specific find request with a dedicated tuner. That is, forthis embodiment, each handset is equipped with a separate or dedicatedtuner that is always on and tuned to a predetermined control channel.FIG. 13A is an exemplary flowchart of the various processes andoperations carried out by a handset (i.e., handset A) which performs aspecific find request with respect to another handset (i.e., handset B).FIG. 13B is an exemplary flowchart of the various processes andoperations performed by handset B that is queried by handset A.

As shown in FIG. 13A, a specific handset find request is initialized atstep S.280 when the user presses the FIND key of the handset A withhandset B being selected or highlighted on the Find list. In response tothe initialization of the specific find request, handset A initializesand sets the value of a wait_clock to zero at step S.282. The wait_clockmay be provided to monitor the elapsed time and may be incremented inaccordance with an internal system clock of the handset. After settingthe wait_clock, the handset A queries handset B on the dedicated controlchannel at step S.284. The find query may include the ID of handset Band the ID of handset A, which sent the query.

At step S.286, handset A determines whether a response has been receivedover the control channel. Handset A may wait and dwell for apredetermined time or wait time to determine if a response has beenreceived from handset B. Thus, if a handset response is not received atstep S.286, then handset A will determine at step S.288 whether the waittime has elapsed or been exceeded. In particular, the handset willdetermine if the value of the wait_clock is greater than or equal to thewait time. If the wait time has not elapsed, then logic flow loops backto step S286 to check again whether a response has been received. When aresponse has not been received within the wait time, then at step S.292it is assumed that handset B is out of range or not available, and thehandset A will show or indicate to the user that handset B was notfound. In this regard, the ID and/or name of handset B may be shown tothe user. A as not being found on the display of the wireless handset.

If a positive response is received for the handset query at step S.286,then logic flow proceeds to step S.290. As shown in FIG. 13A at stepS.290, the handset A will show the handset B as being found to the user.In this regard, the ID and/or name of handset B may be displayed on thedisplay of the handset to user A, along with the detected signalstrength (SS) and an indication that the handset was found (e.g.,“Found”). Following steps S.290 and S.292, the handset find requestterminates at step S.294.

FIG. 13B illustrates the various functions and operations that areperformed by handset B, which was queried by handset A. At step S.360,handset B may perform other handset functions. Upon completion of thehandset functions or concurrently with performance of handset functions,handset B determines at step S.302 whether a find query, has beenreceived on the dedicated control channel. As noted above, each handsetincludes a separate tuner which is always on and actively listens to adedicated control channel to determine whether a find query has beenreceived. If no find query is received at step S.302, then logic flowflows back to step S.300. If, however, a find query is received at stepS.302, then steps S.304 through S.308 are performed.

In particular, at step S.304, the contents of the query message istemporarily stored in order to evaluate the same and determine whetherthe query has been received from a handset on the Find list of user B.Therefore, at step S.304 the ID of handset A (which sent the query) istemporarily stored. Then at step S.306, it is determined whether handsetA is on the Find list of handset B. That is, the ID associated withhandset A (which was contained in the find query) is compared with theentries in the Find list of handset B. If handset A is not on the Findlist of handset B, then logic flow loops back to step S.300. Otherwise,if handset A is on the list of handset B, then at step S.308 a positiveresponse is transmitted back to handset A on the dedicated controlchannel. The positive response message may include the ID of handset Band the ID of handset A (to which the positive response is directed).Following step S.308, logic flow then returns to step S.300.

In the embodiment of FIGS. 13A and 13B, a separate tuner is required ineach of the handsets which is always on and tuned to a dedicated controlchannel. When a find command is given for a specific handset user, thehandset uses the dedicated control channel to contact the specifiedhandset to determine if it is within range. Since the handset has aseparate or dedicated tuner for this function, the find queries canoccur when the handset is on a call with another handset withoutdisruption of the call. If the queried handset (i.e., handset B) iswithin range and has the querying handset (i.e., handset A) on its Findlist, then a positive response message will be sent back to the queryinghandset over the dedicated channel.

FIGS. 14A and 14B illustrate another embodiment of the invention forimplementing a specific find request for a handset. In the embodiment ofFIGS. 14A and 14B, a separate tuner is not required, since all handsetsregister on the control channel in accordance with a predetermined cycletime (i.e., every x minutes or seconds). This registry occurs when thehandset is idle and when the handset is on a call. Registering during afree call will disrupt the call for a period of time, since the handsetutilizes the same tuner required for the call. The querying handset(i.e., handset A) will tune to the control or registry channel andlisten for the duration of one cycle time (i.e., for x minutes orseconds). For those handsets that are on the list of handset A, handsetA will check to ensure that it is on their corresponding list, which isprovided as part of each registry message. FIG. 14A is an exemplaryflowchart of the various processes and operations performed by handset Awhen querying a specific handset (i.e., handset B). FIG. 14B is anexemplary flowchart of the various processes and operations performed byhandset B that registers on the control channel. A detailed descriptionof each of these figures will now be provided.

As illustrated in FIG. 14A, a specific handset request is initiated atstep S.310 when user A presses the FIND key, with handset B beingselected or highlighted on the Find list. Thereafter, the value of acycle_clock is initialized and set to zero at step S.312 and the handsetA tunes to the predetermined control or registry channel at step S.314.The cycle_clock may be provided to monitor the elapsed time anddetermine when the predetermined cycle time has elapsed. The cycle_clockmay be incremented in accordance with an internal system clock of thehandset. The handset A may dwell and wait at the registry channel forthe duration of the cycle time to detect whether the selected handset(i.e., handset B) registers on the control channel and, thus, is withinrange.

Thus, at step S.316, handset A determines whether a response has beenreceived on the registry channel. The registry response message mayinclude the ID and the Find list of the handset. If a registry responseis detected, then at step S.320 the ID of the handset that registered isrecorded, along with the detected signal strength (SS) and the Find listof the registering handset. Thereafter, at step S.322, it is determinedwhether the ID of the registering handset (handset X) corresponds to theID of the handset which was highlighted or designated by the user A(i.e., handset B). If the handset that registered is handset B, then atstep S.324 it is determined whether handset A is on the Find list ofhandset B. That is, the Find list that was contained in the registrymessage is analyzed to determine whether the ID of user A is containedon the Find list of handset B. If user A is on the list of handset B,then at step S.328 the handset displays the ID of user. B, along withthe corresponding name and signal strength (SS) as being found (e.g., bydisplaying a “Found” message). Thereafter, the specific handset findroutine terminates at step S.330.

If it is determined at step S.322 that the registering handset is nothandset B, then logic flow proceeds to step S.318. Logic flow will alsoproceed to step S.318 from step S.316 when it is determined that handsetresponse has not been received, as shown in FIG. 14A. At step S.318, thevalue of the cycle_clock is compared with the cycle time. If the cycletime has not elapsed or been exceeded based on the value of thecycle_clock, then logic flow loops back to step S.316, whereby handsetlistens and again determines whether a handset response has beenreceived. If, however, the cycle_clock is greater than or equal to thecycle time at step S.318, then logic flow proceeds to step S.326.

At step S.326, the handset will display and indicate to the user thatthe handset B was not found. In this case, the ID and/or name of theuser. B may be displayed to the user of handset A, along with anappropriate message (e.g., “Not Found”). Step S.326 will also beperformed when it is determined at step S.324 that the Find list ofhandset B does not include the ID for handset A. Following step S.326logic flow proceeds to step S.330, where the specific handset findroutine terminates.

FIG. 14B illustrates an exemplary flowchart of the operations andprocesses carried out by each handset (including handset B) forregistering on the control channel. In particular, at step S.332, thehandset performs other handset functions. Upon completion of a handsetfunction or concurrently with the performance of other handsetfunctions, the handset checks at step S.334 whether the cycle time hasbeen lapsed or been exceeded. In this regard, a cycle_clock ismaintained which is incremented in accordance with an internal systemclock of the handset. When the value of the cycle_clock is greater thanor equal to the predetermined cycle time, then it is time for handset toregister on the control channel. In particular at step S.336, thehandset will transmit the ID of the handset and its associated Find liston the registry channel. Thereafter, at step S.340, the cycle_clock willbe reset to zero and logic flow will proceed back to step S.332. Asfurther shown in FIG. 14B, logic, flow will also loop, back to stepS.332 when it is determined at step S.334 that the value of thecycle_clock is less than the cycle time.

In the embodiment of FIGS. 14A and 14B, no dedicated or separate tuneris required. Instead, each handset registers on a predetermined controlor registry channel every cycle period (i.e., every x minutes orseconds). The registration during a free call will interrupt the callfor a period of time, since the handset utilizes the tuner required forthe free call. The registry message may include the ID of the registryhandset and the list of other handset IDs that are on the registeringhandsets Find list. By requiring all handsets to transmit theircorresponding Find list, analysis of the list can be made to ensure thatthe querying handset (handset A) is on the list of specified handsets(handset B) and vice versa, without having to contact the specifiedhandset directly.

Once again, it is possible to provide procedures for collision detectionand/or collision correction to prevent or correct the handset fromtrying to register at the exact same time as another handset. A moredetailed discussion of an exemplary embodiment for detecting andcorrecting collisions is provided below.

Various modifications may be made to the embodiment of FIGS. 14A and 14Bto improve the efficiency of the specific handset find procedure. Inparticular, an idle handset can tune to the registry channel andmaintain updates on the handsets on its list, so that when a specificfind request is made, the handset is able to immediately inform the userof the Found list update.

FIGS. 15A and 15B illustrate another embodiment of the present inventionfor providing a specific find request. The embodiment of FIGS. 15A and15B combines the advantages of registering and having a dedicatedcontrol channel. In this embodiment, all handsets register on apredefined control or registry channel every cycle period (i.e., every xminutes or seconds). The registry occurs when the handset is idle andwhen the handset is on a call. The registry includes the ID of thehandset that is registering and the frequency at which the handset canbe contacted. If the handset is on a free call, then the identified orspecified frequency will be the frequency of the call. If, however, thehandset is idle or on a cellular or PCS call, the indicated frequency inthe registry will be the frequency of the dedicated control channel.FIG. 15A is an exemplary flowchart of the various processes andoperations that may be performed by a handset (i.e., handset A) whichperforms a specific request for another handset (i.e., handset B). FIG.15B is an exemplary flowchart of the various processes and operationsthat are carried out by each handset (including handset B) forregistering on the control channel and responding to find queries.Detailed descriptions of each of these figures will now be provided.

As shown in FIG. 15A, a specific find request is initialized at stepS.350 when the user of handset A presses the FIND key with the handset Bbeing selected or highlighted on the Find list. Thereafter, at stepS.352, handset A tunes to the predefined control or registry channel andat step S.354, sets the value of a cycle_clock to zero. Thereafter, thehandset A listens for registry responses at step S.356 on the registrychannel.

At step S.358, it is determined whether, a handset response is receivedon the registry channel. If a handset registry message is not received,then at step S.360 it is determined whether the value of the cycle_clockis greater than or equal to the predetermined cycle time. As describedabove, the cycle_clock may be incremented in accordance with an internalsystem clock of the wireless handset and may be utilized to determinewhen the cycle time has elapsed. If the value of the cycle_clock is lessthan the cycle time at step S.360, then control loops back to step S.358where the handset A again tests whether a handset response is received.

If a handset response is received at step S.358, then at step S.362 thehandset A determines whether the ID of the handset which registered isequal to the ID of the handset which was highlighted by user. A. Thatis, at step S.362, the handset A determines whether the ID of theregistering handset (i.e., handset X) corresponding to the ID of handsetB. If a handset other then handset B made the registry, then logic flowreturns to step S.360 where the value of the cycle_clock is evaluatedonce again. Otherwise, if the ID corresponds to the ID for handset B,then at step S.364 the detected signal strength (SS) of the handset B isrecorded. Further, at step S.366, handset A tunes to the specifiedchannel or frequency for contacting handset B. As noted above; theregistry message that is sent by each handset may include the frequencyor channel at which the handset can be contacted. Following step S.366,handset A will send a find query to handset B at step S.368 with the IDof handset A being specified in the query message. The queried messagewill be sent on the specified frequency or channel for contactinghandset B directly. At step S.370, handset A will also initialize thevalue of the wait_clock to zero.

At step S.372, it is determined whether a response has been receivedfrom the direct query. Handset A may dwell and wait for a predeterminedwait time to detect a response from handset B. Thus, if no, response isreceived at step S.372, then at step S.374 it is determined whether thevalue of the wait_clock is greater than or equal to the predeterminedwait time. The wait_clock may keep track of the elapsed time and beincremented in accordance with an internal system clock of the handsetin order to keep track of the elapsed time. If the wait time has notelapsed, then logic flow returns to step S.372. Otherwise, when the waittime has elapsed or been exceeded, logic flow proceeds to step S.380,which is described in greater detail below.

If it is determined at step S.372 that a positive response has beenreceived from handset B, then at step S.376 the response is recordedalong with the detected signal strength (SS). Further, at step S.378,handset A indicates to the user that handset B has been found. Thisindication may be displayed on the display of the handset and mayinclude the ID of handset B, the corresponding name of user. B and/orthe detected signal strength (SS). An appropriate message (e.g.,“Found”) may also be displayed to, the user. Following step S.378, thespecific handset find request terminates at step S.382.

If a response to the direct query is not detected within the predefinedwait time at step S.374, then at step S.380 handset A will assume thathandset B is out of range or unavailable and indicate to the user thathandset B was not found. In particular, at step S.380 the ID of user B,along with the corresponding name of user B and/or a message (e.g., “NotFound”) will be displayed to the user. Step S.380 will also be performedwhen it is determined at step S.360 that handset B did not registerwithin the predetermined cycle time.

FIG. 15B is an exemplary flowchart of the manner in which each handset(including handset B) may register on the control or registry channeland respond to direct find queries. In particular, at step S.390, thehandset may perform other handset functions. Since a separate tuner isnot provided in this embodiment, disruptions may occur to a call whenthe handset determines it is time to register. At step S.392, thehandset will check to see if it is time to register on the controlchannel. That is, at step S.392, the value of the cycle_clock will becompared with the predetermined cycle time. If the cycle_clock isgreater than or equal to the cycle time, then at step S.394 the handsetwill tune to the control or registry channel. Further, at step S.396,the handset will register by transmitting the ID of the handset and thechannel or frequency at which the handset can be contacted. If thehandset is on a free call, the specified frequency or channel will bethe frequency of the call. If, however, the handset is idle or on acellular or PCS call, then the specified frequency will be the frequencyof the dedicated control channel. Following step S.396, the handsettunes back to the original or previous channel at step S.398.

As shown in FIG. 15B, at step S.400 the handset will set the value Of acycle_clock to zero and then proceed to step S.402. Logic flow will alsoproceed to step S.402 from step S.392 when it is determined that thecycle time for registering has not elapsed. At step, S.402, it isdetermined whether a find query has been received over the specifiedfrequency or channel for the handset. If a direct find query has notbeen received at step S.402, then logic flow proceeds back to stepS.390. Otherwise, when a direct find query is received at step S.402,the handset then proceeds to step S.404 where it is determined whetherthe ID of the querying handset (i.e., the ID of handset A) is on theFind list for the handset (i.e., handset X, which may be the handset ofuser B or another handset user). If it is determined at step S.404 thathandset A is not on the Find list, then logic flow proceeds back to stepS.390. If, however, handset A is on the Find list, then permissionexists for transmitting a positive response to the find query.Accordingly, at step S.406 the handset will transmit a positive responseback to handset A. Following step S.406, logic flow proceeds back tostep S.390.

With the embodiment of FIGS. 15A and 15B, no dedicated or separate tuneris required. However, a disruption on a free call may exist while bothhandsets register. As such, both handsets that are on a free call mayregister sequentially to minimize the disruption to the free call. Inany event, the disruption to the conversation is minimized since eachhandset does not need to transmit their. Find list when registering.Instead, the registry message only includes the ID of the handset andthe frequency at which the handset can be contacted. Time domainmultiplexing also allows the handsets on a free call to be querieddirectly on the channel where the call is occurring. Thus, when handsetA needs to find handset B that is on a free call, handset A will tune tothe channel on which handset B is conducting a voice conversation. Itwill then transmit the query on the control time slot of the channel torequest handset B to check its list and receive from the control timeslot of the channel the response if handset A is on the list of handsetB.

In the embodiment of FIGS. 15A and 15B, an idle handset can tune to theregistry channel and maintain updates on the handsets on its lists sothat when a find request is pressed, the direct queries of a specifiedhandset can begin. Such a modification will reduce the total timerequired for performing a find request in the embodiment of FIGS. 15Aand 15B. In addition, procedures may be implemented in FIGS. 15A and 15Bto detect collisions and/or correct collisions. As explained above, acollision may occur when one handset tries to register at the exact sametime as another handset.

FIGS. 16A and 16B illustrate another embodiment of the present inventionfor implementing a specific find request for another handset. Thisembodiment is similar to the embodiment of FIGS. 12A and 12B in that theregistry message includes not only the ID of the registering handset andthe frequency at which it can be contacted, but also the time slot inwhich the handset can be contacted if it is on a call. By providing thetime slot information, time domain multiplexing is not required in orderto directly query a handset that is on a free call. FIG. 16A illustratesan exemplary flowchart of the various processes and operations that maybe performed by a querying handset (i.e.; handset A) which is attemptingto find a specific handset (i.e., handset B) which was selected by theuser. FIG. 16B is an exemplary flowchart of the various processes andoperations performed by each handset (including handset B) forregistering on the control channel and responding to direct findqueries. A detailed description of each of these figures will now beprovided below.

As shown in FIG. 16A, a specific find request is initialized at step,S.410 when user. A presses the FIND key with the handset B selected onthe list. At step S.412, handset A tunes to the control or registrychannel and at step S.414 sets the cycle_clock to zero. Thereafter, atstep S.416, the handset listens to the registry channel in order todetect a handset registry or response.

If a handset response is received at step S.418, then at step S.422 itis determined whether the ID of the registering handset (i.e., handsetX) corresponds to the ID of handset B, specified by user A for thespecific find request. If it is determined at step S.422 that theresponding handset is handset B, then at step S.424 the detect signalstrength (SS) of the response is recorded and, at step S.426, thehandset A tunes to the channel specified for contacting handset B. Asnoted above, the registry message includes the frequency at which thehandset can be contacted and the time slot during which the handset canbe contacted if it is on a call. At step S.428, handset A directlyqueries handset B on the specified channel. The direct find query willinclude the ID of the handset A to indicate the source of the query.Further, if handset B is on a free call, handset A will contact and sendthe query on the specified frequency and based on the specified timeframe.

Following step S.428, the handset A will set the value of the wait_clockto zero at step S.430 and, at step S.432, determine whether a responsehas been received from the handset B. If a positive response is receivedfrom handset B, then at step S.436 the response is recorded along withthe detected signal strength (SS) of the response. Thereafter, at S.438,the handset will indicate to the user that handset B was found. In thisregard, handset A may display the ID of user B, along with the name ofuser B and/or the detected signal strength (SS). Following step S.438,the specific find request terminates at step S.442.

If a response is not received at step S.432, then logic flow willproceed to step S.434 to determine whether the predetermined wait timehas elapsed. The handset may wait for the predetermined wait time to seeif the directly queried handset responds. The value of the wait_clockmay be incremented in accordance with an internal system clock of thehandset to detect the elapsed time and to monitor the wait time. If thewait time has not been exceeded at step S.434, then logic flow will loopback to step S.432 so that the handset will again check to see whether aresponse has been received. Otherwise, if a response is not received andthe predetermined wait time has been exceeded, then at step S.440, thehandset will indicate that user. B was not found. In this regard,handset A may display the II) of user. B, along with the correspondingname of user B and/or an appropriate message (i.e., “Not Found”).Following step S.440, the specific find request will terminate at stepS.422.

Referring again to step S.418 in FIG. 16A, handset A will listen to, theregistry channel for the duration of one cycle time to detect whetherhandset B registers on the predefined control or registry channel. Thus,when a handset response is not received at step S.418, logic flow willproceed to step S.420 to check whether the cycle time has elapsed. Asdescribed above, the cycle_clock may be maintained to keep track of theelapsed time and to monitor when the cycle time has elapsed. As long asthe cycle time has not elapsed, logic flow will loop back to step S.418to check whether a handset response has been received. If, however,handset B is out of range or is not detected as registering on thecontrol channel within the cycle time, then logic flow proceeds fromstep S.420 to step S.440 so that the handset A may indicate to the userthat handset B was not found.

FIG. 16B illustrates an exemplary logic flow of the various proceduresand operations that may be carried out by each handset (includinghandset B) to register on the control channel and to respond to directfind queries. At step S.450, the handset performs other handset-relatedfunctions. These functions may include maintaining a free call orperforming a memory-related function. At step S.452, it is determinedwhether the value of a cycle_clock is greater than or equal to the cycletime. Upon detection of the lapse of the cycle time, the handset thendetermines that it is necessary to register on the control or registrychannel. Thus, at step S.452, if the cycle_clock is greater than orequal to the cycle time, logic flow proceeds to step S.454 where thehandset tunes to the registry channel. Thereafter, at step S.456, thehandset transmits the ID of the handset as well as the channel orfrequency at which it can be contacted. If the handset is on a freecall, the handset will also specify in the registry message the timeslot in which the handset can be contacted. The onset of this time slotmay be communicated as an offset from the time that the registrationoccurred. If the handset is idle or on a cellular or PCS call, thespecified frequency to contact the handset will be the frequency of thededicated control channel and the time slot will be any time. Followingstep S.456, logic flow proceeds to step S.458 where the handset tunes tothe previous channel. Thereafter, the cycle_clock is reset to zero.Logic flow then proceeds from step S.460 to step S.462. As shown in FIG.16B, logic flow will also proceed to step S.462 from step S.452 when itis determined that the cycle time has not elapsed.

At step S.462 the value of the cycle_clock is compared with the slotstart time and slot end time. In particular at step S.462, it isdetermined whether the cycle_clock is greater than or equal to the slotstart time and less than or equal to the slot end time. If theseconditions are satisfied, then logic flow proceeds to step S.464, wherethe handset determines whether a direct find query has been receivedduring the specified time frame. If the conditions of step S.462 are notmet (i.e., the value of the cycle_clock is outside of the specified timeframe) or a find query is not received at step S.464, then logic flowwill loop back to step S.450, as shown in FIG. 16B.

When a direct find query is received at step S.464, the handset willcheck to see if the BD of the querying handset (i.e., handset A) is onthe list of the handset (i.e., the Find list of handset X, which may behandset B or another handset). If the ID of handset A is on the Findlist, then a positive response is transmitted at step S.470. Thereafter,logic flow returns to step S.450. If, however, there is no permission torespond to the find query since handset A is not on the Find list of thehandset, then logic flow will proceed directly back to step S.450 fromstep S.468.

In the embodiment of FIGS. 16A and 16B, when the querying handset (i.e.,handset A) is initialized to perform a specific find request withrespect to another handset (i.e., handset B), handset A will tune to theregistry channel and listen for the duration of the cycle time. When itis detected that handset B registers on the registry channel, handset Awill contact handset B directly on the frequency specified in theregistry and in the time frame specified (if necessary). If handset B iswithin range, detects the find query from handset A and determines thathandset A is on its corresponding Find list, then handset B will be ableto respond to the query from handset A.

During call setup, two handsets may exchange the time that they willeach register. The time that the other handset registers may be definedas the slot time. Therefore, in the embodiment of FIGS. 16A and 16B,handsets may not register sequentially. Instead, handsets on a call mayregister at non-overlapping times during the cycle time in order toprovide the time required to respond to find queries of other handsetsduring the slot time. If a collision occurs, then the registry time,slot time, and cycle time should be renegotiated. While two disruptionson a free call are required (since each handset registers and transmitsits frequency and slot time on the registry channel), each disruption isminimized since the Find list of each handset does not need to betransmitted. Further, this embodiment includes the advantage of notrequiring time domain multiplexing.

As discussed above, the wireless handset of the present invention mayalso be implemented with a set of List Maintenance features. Generally,each wireless handset may store and maintain one or more lists ofnumbers and/or IDs of other handset users. According to a preferredembodiment of the invention, each handset is equipped with three listsof numbers, including a Speed Dial list, a Find list and a Found list.The Speed Dial list contains the names and numbers of all the people theuser would like to call without having to dial the number directly. TheFind list contains the names and number of all of the people that are onthe Speed Dial list that have a wireless handset that is capable ofoperating in a direct handset-to-handset communication mode. Further, asdescribed above, the Found list is the list of people or users that areon the Find list of the handset and that are within range of the user'swireless handset. The Found list is generated by pressing, for example,a FIND button on the handset and executing a find request. Each wirelesshandset may be implemented such that changes to any, one of these listswill automatically be reflected in the other lists. In addition, theselists (i.e., the Find, Speed Dial and Found lists) do not need to beprovided separately in the wireless handset. For example, two lists orall three lists may be combined in the handset.

The List Maintenance features of the present invention may includefeatures which permit a user to add, delete and modify entries to eachlist of the handset. In particular, according to an aspect of thepresent invention, the List Maintenance features may allow users to addentries identifying other handset users to their Speed Dial list andFind list. For example, a program feature may be provided which allows auser to program, with the buttons or keypad of the handset, the name andnumber of a person into either the Speed Dial list or the Find list.Such a feature may be similar in functionality to that used forprogramming speed dials in to, conventional wireless handsets. However,the program feature of the invention may additionally require that theuser indicate whether, the number being programmed belongs to acompatible wireless handset that is capable for performing directhandset-to-handset communication.

Another feature which may be provided with the List Maintenance featuresis a delete feature. With the delete feature, a user may be given anoption to delete an entry from either the Speed Dial List or the Findlist. When deleting an entry, both the name and number of the user willbe deleted. In addition to the delete feature, a group feature may alsobe provided to permit a user to group objects into sublists. Thisfeature may be useful when grouping family members, co-workers orfriends into sublists. Grouping items on the Speed Dial list may also,automatically cause entries to be grouped on the Find list, and viceversa. When items are grouped, their members will continue to beavailable on the list, as well as the group as a whole.

According to an additional aspect of the present invention, the ListMaintenance features of the wireless handset includes a memorize featurewhich provides an easy way for handset users to trade names and numberswith one another. The memorize feature may be invoked when two handsetusers are near each other (e.g., within an arm's reach or the same room)or are talking to each other on a free call. As illustrated in FIG. 5, awireless handset may transition from an Idle state to a Memorize Requeststate when invoking the memorize feature. By invoking the memorizefunction at approximately the same time, the two handsets will exchangenames and numbers, and enter those names and numbers into theirrespective Find list.

By way of a non-limiting example, FIGS. 40A and 40B are exemplaryflowcharts of the various processes and operations in a Memorize Requeststate, according to an aspect of the invention. As illustrated in FIG.5, when initiating the memorize feature to exchange information with anobject, the wireless handset will transition from an Idle state to aMemorize Request state. The transition from an Idle state to theMemorize Request state may occur under condition 1, when a userindicates to initiate or start a memorize request to exchangeinformation with another object (e.g., another wireless handset) bypressing an appropriate key or button on the wireless handset. In theMemorize Request state, the wireless handset will attempt to exchangeinformation (including ID or directory number, information) with anotherhandset or object that is located within range. The wireless handset maytransition back to the Idle state from the Memorize Request state(represented by condition m in FIG. 5) after successfully exchanginginformation with another object or handset or after failing to completethe memorize function.

More particularly, as illustrated in FIG. 40A, when entering a MemorizeRequest state the wireless handset will first switch and/or initializethe transceiver of the handset at step S.1300 for the memorize request.That is, N frequency pairs may be assigned to the wireless handset forperforming a memorize function, with the higher frequency associatedwith a duplex channel “i” being designated as F.sub.hi and the lowerfrequency being designated as F.sub.li. Therefore, at step S.1302, thewireless handset will switch the receiver to the lower frequency band ofthe duplex pass band and switch the transmitter to the higher frequencyband. As further shown in FIG. 40A, the handset will also initialize andset the value of a counter i to 1 at step S.1304. Following step S.1304,the receiver of the handset will be set to the low frequency F.sub.liand the transmitter will be tuned to the higher frequency F.sub.hi atstep S.1306.

After tuning the receiver and transmitter, the wireless handset willdetermine at step S.1308 whether there is interference in the channel.Interference may be analyzed by determining whether the signal strengthof the channel is not greater than a predetermined threshold. Forexample, at step S.1308, the wireless handset may determine whether thereceived signal strength of the channel is greater than a thresholdlevel THR.sub.rssi. If it is determined that the threshold has beenexceeded and that there is interference on the channel, then at stepS.1310 the value of the count i may be modified according to thefollowing equation:i=(i+1)mod N.

After the value of the counter i is reset, logic flow proceeds back tostep S.1306 so that another channel is tuned to and analyzed forinterference.

If the signal strength of the channel is determined to be acceptable atstep S.1308, then a counter m may be initialized and set to 0 and atstep S.1312 (see FIG. 40B) a synchronization signal may be sent by thewireless handset. After synchronization, the wireless handset maytransmit a memorize message over the channel at step S.1314. Thememorize message may include information associated with the handset,including the directory number. DN and/or name associated with thewireless handset. Following step S.1314, the wireless handset will waitfor a response at step S.1316 to determine if the object or otherwireless handset responds by sending a memorize response message tocomplete the exchange of information. Ideally, the memorize featureshould be invoked when both handsets are in close proximity to eachother, so that memorize messages can be sent and received withoutinterference (e.g., by calls or memorize messages transmitted betweenother wireless handsets in the area). In addition, the memorize messagesmay be transmitted at a reduced power level and within a short timewindow in order to avoid the messages from being received by otherhandsets or objects in the area. As such, the requesting handset thattransmits the memorize message may wait for a predetermined period oftime (e.g., a few seconds) to determine if a memorize response messagehas been received, before attempting to retransmit on another channel ordetermining that the memorize request has failed.

If a memorize response message is not received at step S.1316, then thecounter m is incremented by one at step S.1318 and at step S.1320 therequesting handset determines whether m has exceeded a predeterminedlimit L. If m is less than or equal to the predetermined limit L, thenlogic flow proceeds back to step S.1312 so that a synchronizing signaland the memorize message may be resent. Otherwise, at step S.1326, thehandset will assume that the memorize request has failed and a findfailure indication will be provided to the user to indicate that thememorize request was Unsuccessful. Following step S.1326, the wirelesshandset may transition from the Memorize Request state back to the Idlestate, as illustrated on FIG. 40B.

If a memorize response message is received at step S.1316, then thewireless handset will check and analyze the signal strength of thememorize response message to determine if it was transmitted by theresponding handset that is within close proximity, or next to thetransmitting handset. That is, at step S.1324, the handset may comparethe signal strength with a predetermined threshold RD.sub.rssi toconfirm that the memorize response message was sent at a reduced powerlevel. If the signal strength is greater than the predeterminedthreshold RD.sub.rssi, then the attempt to exchange information hasfailed and at step S.1326 a find failure indication will be provided tothe user to indicate that the memorize request was unsuccessful.Thereafter, the handset may return to an Idle state. If, however, thesignal strength is determined to be at the expected reduced power level,then the memorize response message has been received successfully andthe information associated with the responding handset (includingdirectory number and/or name) will be decoded. Further, at step S.1328,a memorize success alerter will be activated to notify the user that thememorize request was successful. This indication may comprise providingan audible tone and/or message to the user with the handset. Followingstep S.1328, the handset will store and update the decoded informationin the handset. The information may be stored in the speed dial and Findlists of the handset, so that the user may initiate call requests andfind requests with the stored information. Thereafter, the wirelesshandset may transition from the Memorize Request state back to the Idlestate, as illustrated on FIG. 40B.

In accordance with another embodiment of the invention, FIGS. 17A and17B represent an additional, exemplary implementation of the memorizefeature that may be provided in a handset. In particular, FIG. 17A is anexemplary flowchart of the various processes and operations that may beperformed by a handset (i.e., handset A) when invoking the memorizefunction to exchange name and number information with another handset(i.e., handset B) that is nearby. FIG. 17B illustrates an exemplaryflowchart of the various processes and operations performed by thehandset B that is near handset A and that is also invoked to perform amemorize procedure. Each of these figures will now be discussed ingreater detail.

As shown in FIG. 17A, the memorize procedure is initialized by user. Aat step S.500 when the memorize feature is selected on the handset withthe other handset or object B being nearby. Since the memorize procedureis performed with the handsets being set at reduced power, handset Bshould be in close proximity to handset A in order to receive thetransmitted handset information. Generally, the handsets should beapproximately an arm's length away from one another or, should be in thesame room. Further, although step S.500 illustrates user. A asinitializing the memorize procedure, it is of course possible thathandset B initializes the memorize procedure by activating the memorizefeature before user. A.

At step S.502, handset A sets the value of a wait_clock to zero. Thewait_clock may be a counter stored in the handset which is incrementedin accordance with an internal system clock to keep track of the elapsedtime. Following step S.502, the handset at step S.504 tunes to apredetermined control channel at a very low or reduced power. Asdiscussed above, since the memorize information is exchanged at areduced power level, handset A and handset B should be in closeproximity to one another so that the information may be detected andreceived. The power level should be reduced to a level so as to preventother handsets in the area from receiving the signal. Preferably, thehandset units should be operated within several feet of one another orwithin one arm's reach.

At step S.506, handset A queries handset B over the control channel fora memorize confirmation. The memorize query message sent from handset Amay include the ID and corresponding name for user A. Following stepS.506, the handset A determines at step S.508 whether a positiveresponse or confirmation has been received. If a response is notreceived, then at step S.510, the handset determines whether apredetermined wait time has expired. In accordance with an aspect of thepresent invention, each handset may wait for a predetermined wait timefor a memorize confirmation from the other handset. The value of thewait_clock may be compared with the wait time to determine the amount oflapsed time since initializing the memorize procedure. If it isdetermined that the wait_clock is less than the wait time, then logicflow loops back to step S.508. Otherwise, if a memorize confirmation isnot received within the wait time and, at step S.510, it is determinedthat the wait time has elapsed or been exceeded, then logic flowproceeds to step S.516 where the memorize routine is terminated.

If it is determined at step S.508 that a memorize confirmation has beenreceived, then at step S.512 it is determined whether user A confirmsthat the ID and name of user B should be memorized. In this regard, userA may be prompted by the display of the handset to confirm that thememorize procedure should be completed by storing the ID and name ofuser. B to the list. If user A does not confirm the saving of user B tothe list, then logic flow proceeds to step S.516 where the routineterminates. If user. A confirms the completion of the memorizeprocedure, then at step S.514 the ID and name of user B (which wasincluded in the memorize confirmation message from handset B) is storedin the Find list for handset A. Following step S.514, the procedureterminates at step S.516.

FIG. 17B illustrates the various processes and operations that may becarried out by handset B when performing a memorize procedure withhandset A. Specifically, at step S.520, handset B performs other handsetrelated functions. Thereafter, at step S.522, handset B detects whethera memorize query has been received over the control channel. Inaccordance with an aspect of the present invention, the tuner forhandset B may periodically check for responses received over the controlchannel, including whether a memorize query has been received. If it isdetermined that a memorize query is not received at step S.522, thenlogic flow loops back to step S.520. If, however, a memorize query isreceived in the control channel at step S.522, then the query message isanalyzed at step S.524.

In particular, handset B temporarily records the ID and name of user Aat step S.524. As discussed above, the ID and corresponding name of userA is included with the memorize query from handset A. Following stepS.524, handset B sets and initializes the value of a wait_clock to zero.The wait_clock may be stored in handset B and is utilized to monitor theelapsed time. For this purpose, the wait_clock may be incremented inaccordance with an internal system clock of the handset. At step S.528,the handset determines whether user. B has pressed the memorize buttonor selected the memorize feature. That is, upon receipt of the memorizequery from user. A (which initialized the memorize procedure), user Bmay be prompted by the display of the handset to activate the memorizefeature. Alternatively, the handset may not provide a prompt and user. Bmay simply press or activate the memory feature with the handset afteruser A initializes the memorize procedure on his/her handset. If thememorize procedure is not activated by the user. B, then at step S.530,it is determined whether a predetermined wait time has been exceeded.For this purpose, the value of the wait_clock is compared with the waittime. If the wait_clock is less than the wait time, then logic flowloops back to, step S.528. Further, if the memorize feature is notactivated at step S.528 and the wait time has been determined to beexceeded at step S.530, then the entire memorize procedure is skippedand logic flow returns to step S.520.

If it is determined at step S.528 that the memorize feature has beenactivated by user. B, then at step S.532 a memorize confirmation messageis sent back to handset A over the control channel. In this regard,handset B operates at a reduced power and includes the ID and name ofuser. B with the memorize confirmation message.

Following step S.532, handset B determines at step S.534 whether theuser confirms to complete the memorize procedure by saving the ID andname of user A (which was included in the memorize query from handsetA). User B may be prompted to confirm the storing of the ID and name ofuser A by a message prompt on the handset. If user B confirms that userA is to be memorized, then at step S.536 the ID and name of user. A isadded to the Find list of handset B. Following step S.536, the routineends and logic flow loops back to step S.520, so that other handsetfunctions can be performed. Logic flow will also return to step S.520from step S.534 if user. B does not confirm that user. A is to be addedto the Find list.

Successful completion of the memorize procedure results in handset Bshowing on the Find list of handset A, and vice versa. The Speed Diallist of handsets A and B may also be updated in accordance with theinformation added to the Find list. In addition to two handsetsexchanging information, other objects (such as tracking devices,including a paging device or a beeping clip attached to an item) can bememorized by having the user press the memorize button or activate thememorize feature on the object. Objects, however, can also be manuallyprogrammed into a Find list of a handset, thus alleviating the need fora memorize button on the object.

As discussed above, since the memorize procedure is performed with thehandsets operating at a reduced power and for transmitting only for ashort period of time, users must invoke the function in close proximityto one another and close together in time. Additional procedures may beincorporated into the logic flow of FIGS. 17A and 17B to detectcollisions and/or correct collisions. A more detailed discussion ofprocedures for detecting and correcting collisions if provided below.

The memorize features of the present invention may also be used inconnection with other objects, such as a tracking devices or clip. Thememorize procedure may operate in a similar fashion to that formemorizing between two handsets. For example when the memorize featureis invoked by a handset on a clip, the ID of the clip may beautomatically transferred and stored in the Find list of the handset.The user of the handset may then be given an opportunity to associate aname with the clip, or object. Such a feature may save a user fromhaving to enter both the name and the ID into the handset.

Another set of features which may be implemented in the wireless handsetof the present invention is a set of Conference Call features.Conference Call features may enable the user of the wireless handset toplace conference calls to other compatible handsets through directhandset-to-handset communication, as long as all parties are withinrange of the conference initiator. Various methods may be provided forinitiating a conference call. For example, a Spontaneous Conference Callfeature may be provided to permit a user to add another person to anexisting call (similar to three-way calling) to establish a conferencecall. This type of conferencing may be available during other types ofconferencing. Further a Static Talk Group feature may be provided whichenables the user to create a group of people in the Speed Dial list orthe Find list to which the user would like to place a conference call.To establish a conference call, the user may select the group of peoplethrough the display of the handset, press the FREE button and thehandset will simultaneously place a call to all members of that group.Should some of the users in the group not be available or reject thecall, the conference may still be initiated, but without those members.Further, this conference feature will not continue to try to bring themissing members into the call. However, spontaneous conferencing may beavailable during this type of conference to permit the user toselectively add other users or try to contact the missing members of thegroup.

Other Conference Call features may be provided. For example, a TemporaryTalk Group feature may be provided that allows a user to specify two ormore people to place a call by selecting those people from the SpeedDial list, Find list, or Found list individually and then hitting theFREE button on the handset. Should some of the users from the group notbe available or reject the call, the conference will still be initiated,but without those members. This conference, call feature will not try tobring these missing persons into the call, but the user may try to addthese persons during the conference with the spontaneous conferencingfeature.

Another feature that may be provided as part of the set of ConferenceCall features is a Conference Call Channel. In accordance with an aspectof the present invention, a Conference Channel may be a predefinedchannel which is open to all wireless handsets that are implementedaccording to the aspects of the present invention. Such a ConferenceChannel may function similar to a channel of a CB radio. Spontaneousconferencing may be made available with this type of conferencing topermit other members to be added to the conference call.

Various techniques may be utilized to implement and establish conferencecalls through direct handset-to-handset communication. According to anaspect of the present invention, time domain multiplexing is utilized toestablish three-way conferencing and other types of conference calls.For three-way conferencing established through time domain multiplexing,three time slots per frame may be defined. In general, one time slot isutilized to carry control data and the other two time slots are utilizedto carry voice data between any two handsets. FIGS. 18A, 18B and 18Cillustrate embodiments of providing three-way conferencing through theuse of time domain multiplexing, in accordance with aspects of thepresent invention.

In particular, FIG. 18A schematically represents a three-wayconferencing scenario between handset A, handset B and handset C. InFIG. 18A time domain multiplexing may be utilized to implement three-wayconferencing with the handsets communicating in a directhandset-to-handset communication mode. As mentioned above, three timeslots per time frame are provided, with two of the time slots carryingvoice data. To support bi-directional communication, the voice data maybe transmitted by either party. For example, with respect to handsets Aand B, handset A may transmit with handset B receiving (ATBR), orhandset B may transmit voice data with handset A receiving (BTAR).Further, with respect to handsets A and C, handset A may transmit withhandset C receiving (ATCR), or handset C may transmit with handset Areceiving (CTAR) the voice data. Similarly, with respect to handsets Band C, handset B may transmit with handset C receiving (BTCR), orhandset C may transmit with handset B receiving (CTBR) the voice data.

In addition to the two slots per time frame that are utilized to carryvoice, one slot per frame may be dedicated for carrying control data.Various implementations may be utilized for allocating the three timeslots per frame. FIGS. 18B and 18C illustrate two embodiments of theinvention for time slot allocation. In FIG. 18B, the first, second andthird time slots (TS1, TS2 and TS3) are defined, wherein the first timeslot TS1 is dedicated for control data (C). In this embodiment, thefirst time slot TS1 may have a length that is as small or as large asneeded for supporting the control data. The second time slot TS2 and thethird time slot TS3 in FIG. 18B are provided to carry voice. In FIG.18C, the first, second and third time slots (TS1, TS2 and TS3) aredefined differently with respect to the control data time slot. That is,in FIG. 18C, any time slot can carry voice. Therefore, the control data(C) may be carried in any time slot. However, in the embodiment of FIG.18C, the length of the time slot carrying the control data must be thesame length as the voice channel or time slots. In any event, for bothof the embodiments of FIGS. 18B and 18C, an additional framing bit maybe provided at the beginning of each frame to help the receivingequipment synchronize.

As illustrated in FIGS. 18A-18C, three-way conferencing may beimplemented and provided in the wireless handset of the presentinvention through the use of time domain multiplexing and a time frameincluding a plurality of time slots (preferably three slots). In theembodiment of FIG. 18B, the time slot carrying the control data may beof any required length, whereas in the embodiment of FIG. 18C thecontrol data time slot must be the same length of the voice channel.Further, in the embodiment of FIG. 18C, only one handset has access tothe transmit and receive control time slot at a time. Thus, handsetspecific data must either be sent over multiple time slots, or theproper time slot for each handset must be known. In contrast, in theembodiment of FIG. 18B, control data that applies to any or all of thehandsets can be sent at one time and all handsets can receive the same.Since the first time slot TS1 is dedicated for carrying the controldata, no prior knowledge of the proper time slot is required. While theembodiments of FIGS. 18B and 18C have been provided, other variations onthe number of time slots per frame and the allocation of what istransmitted and received in each time slot may be provided.

The present invention has been described with reference to facilitatingand supporting voice communication between handsets. In addition tosupporting voice communication, the wireless handsets of the presentinvention may also be implemented so as to permit short range messages(including alphanumeric text, etc.) between handsets when communicatingin a direct handset-to-handset communication mode. For this purpose, aset of Short Range Messaging features may be provided with the handsetof the present invention. Such features may facilitate the sending ofshort range messages from one handset to another handset, as along asboth handsets are within range. The types of messages that may besupported can include both numeric and alphanumeric message. Short rangemessages can be sent directly from one handset to another if they areboth idle, or can be received during the control time slot if thereceiving handset is on a call. When sending a short range message, thesending handset may check a registry or control channel to determine ifthe handset is within range (i.e., the handset should perform a specificfind request), and to identify the proper frequency on which to send themessage. Short range messaging should be restricted if a user tries toinitiate the same during a call. Traditional short range messagingtechniques and features may be utilized to provide short range messagingin the wireless handset of the present invention. That is, traditionalmessage structures for sending messages (such as that used in shortmessage service—SMS) may be used for sending short messages betweenhandsets. However, since handsets are capable of communicating with oneanother without the use of a network infrastructure, a separate messagecenter is not necessary to handle transmission; of the short messages.Further, since the wireless handsets of the present invention arecapable of communicating in a direct handset-to-handset mode, shortrange messages may be received by a handset during a call.

The set of Short Range. Messaging features may provide variousfunctionalities and capabilities to the user of the wireless handset.For example, a user may be able to enter custom messages, includingnumeric or alphanumeric messages, by typing them in using the keypad ofthe wireless handset. Once a message is typed in, the user will be giventhe option to store that message in a Saved Messages list. The SavedMessages list may store a predetermined number of messages, each ofwhich is permitted to have a maximum length. When the limit of the SavedMessages list is reached, old messages may be deleted to providesufficient room for additional or new messages. Further, the user may begiven the ability to select message from the Saved Messages list toeasily use and resend the messages without having to type those messagesagain. These messages may include basic alphanumeric messages (e.g.,“Let's go to lunch”) or other types of messages that are frequently sentby the user.

In order to send a message, the Speed Dial list, Find list or Found listcan be utilized by the user to select a person or group to send themessage. A message can be sent or broadcast to a group by selecting adefined group from the Speed Dial list or the Find list. In addition,the user can specify two or more recipients of a message by selectingthose people or groups from the Speed Dial list, Find list or Foundlist. With respect to header information, the sender of the message,time and date the message was received will be displayed at thebeginning of the message. An optional feature may also be provided whichpermits the display of all recipients of a broadcast message when thisfeature is selected.

Various types of feedback may be provided to the user when a message issent. For example, if the receiving handset is out of range or turnedoff, a message stating this fact may be presented on the display of thesender's handset (e.g., “Unavailable”). Further, if the receivinghandset is in use and cannot receive a message, then a message statingthat the handset is busy may be presented on the sender's handsetdisplay (e.g., “Busy”). If the receiving handset confirms reception ofthe message, then a message stating this fact may be displayed (e.g.,“Delivered”).

Another feature that may be provided is a Query. Message Read featurewhich allows users to ask the handset that received the message if thatmessage was read lithe handset is in range, the handset will respondautomatically without asking the user. In addition, a Read Feedbackfeature may be provided which, when selected, will automatically send amessage back to the originator of the message that the message was readby the receiver (as indicated by the receiver scrolling to thatmessage). If the originator is out of range, the handset will notcontinue to try to deliver this acknowledgment.

For incoming short range messages, various features may be provided foralerting and displaying the incoming messages. For example, a variety ofmessage alert features may be provided which enable the handset to alertthe user of an incoming message by the choice of a ringing signal,vibrating signal, blinking display, beeping signal (only once) or withno alerting signal. The choice of message alert may be selectable and anindependent choice than that made for traditional wireless network callsor incoming handset-to-handset calls.

When an incoming message is received, a note on the screen may bedisplayed to the user to inform the user of the received message. Themessage display may indicate the number of messages received. When amessage is received, the user may then be able to access that messageand scroll through it using the arrow keys on the handset. For replyfeatures, a one function reply to a message can be invoked. The replycan be numeric, alphanumeric or a message chosen from the Saved Messageslist. The reply message may contain the quoted text of the originalmessage. As discussed above, users may also be given the ability todelete messages, including messages stored in the Saved Messages list.

By way of a non-limiting example, FIGS. 41A and 41B illustrate exemplaryflowcharts of the various processes and operations that may be performedby a handset when sending a short range message in a Short Range Messagestate. That is, as illustrated in FIG. 5, a wireless handset maytransition from an Idle state to a Short Range Message state when thehandset is invoked by the user to transmit a short range message. Thistransition state is represented by condition n in FIG. 5. In the ShortRange Message state, the wireless handset may transmit the short rangemessage to a specified handset or object. Upon the successfultransmission of the short range message or after determining that theshort range message request has failed, the handset may transition backto the Idle state from the Short Range Message state (as represented bycondition o in FIG. 5).

In particular, as illustrated in FIG. 41A, when entering a Short RangeMessage state the wireless handset will first collect the short rangemessage entered by the user at step S.1400. The short range message maybe entered by the user through the keypad of the handset. The handsetmay include pre-stored messages that the user may select and/or modify.At step S.1400, the short range message that is collected may be storedin a memory buffer of the handset. Then, at step S.1402, the handsetwill switch and/or initialize the transceiver in preparation oftransmitting the short range message request. The handset may beimplemented to sent the short range message over a dedicated controlchannel or a registry channel. Alternatively, in accordance with theembodiment of FIGS. 41A and 41B, N frequency pairs may be assigned tothe wireless handset for transmitting short range messages. In suchcase, the higher frequency associated with a duplex channel “i” may bedesignated as F.sub.hi and the lower frequency designated as F.sub.li.Therefore, at step S.1402, the wireless handset will switch the receiverto the lower frequency, band of the duplex pass band and switch thetransmitter to the higher frequency band.

As further shown in FIG. 41A, the handset initializes and set the valueof a counter i to 1 at step S.1404. Following step S.1404, one of theassigned frequency pairs is selected based on the value of the counteri, with the receiver of the handset being set to the low frequency.F.sub.li and the transmitter will be tuned to the higher frequencyF.sub.hi. After tuning the receiver and transmitter, the wirelesshandset will determine at step S.1308 whether there is interference inthe channel. Interference may be analyzed by, determining whether thesignal strength of the channel is not greater than a predeterminedthreshold. For example, at step S.1408, the wireless handset maydetermine whether the received signal strength of the channel is greaterthan a threshold level THR.sub.rssi. If it is determined that the signalstrength exceeds the threshold and that there is interference on thechannel, then at step S.1410 the value of the count i may be modifiedaccording to the following equation:i(i+1)mod N

After the value of the counter i is reset, logic flow proceeds back tostep S.1406 so that another channel is tuned to and analyzed forinterference.

If the signal strength of the channel is determined to be acceptable atstep S.1408, then a counter m may be initialized and set to 0 and atstep S.1412 (see FIG. 41B) a synchronization signal may be sent by thewireless handset. After synchronization, the wireless handset maytransmit and send the short range message over the selected channel atstep S.1414. The short range message include the directory number DNand/or name associated with the wireless handset or object that theshort range message is directed to. Following step S.1414, the wirelesshandset will wait for a response at step S.1416 to determine if theshort range message has been received. The handset that transmits theshort range message may wait for a predetermined period of time (e.g., afew seconds) to determine if a short range message response has beenreceived before attempting to retransmit on another channel ordetermining that the memorize request failed.

If a short range message response is not received at step S.1416, thenthe counter m is incremented by one at step S.1418 and at step S.1420the handset determines whether m has exceeded a predetermined limit L.If m is less than or equal to the predetermined limit L, then logic flowproceeds back to step S.1412 so that a synchronizing signal and theshort range message may be resent. Otherwise, at step S.1426, thehandset will assume that the short range message was not received and ashort range message (SMR) send failure indication will be provided tothe user to indicate that the memorize request was unsuccessful.Following step S.1426, the wireless handset may transition from theShort Range Message state back to the Idle state, as illustrated on FIG.41B.

If a short range message response is received at step S.1416, then atstep S.1424 a short range message (SMR) send success indication will beprovided to the user to indicate that the short range message was sentsuccessfully. Following step S.1424, the wireless handset may transitionfrom the Short Range Message state back to the Idle state, asillustrated on FIG. 41B.

In addition to providing Short Range Messaging features, the wirelesshandset of the present invention may be implemented with variousAccessory-Related features. Various accessories may be provided with thewireless handset of the present invention. For example, the wirelesshandset may be provided with a port or connection to support computerconnectivity. Computer connectivity features may be implemented in thewireless handset to enable downloading of large lists (e.g., Speed Diallists, Find lists, Short Messages lists, etc.) and standardconfigurations. In addition, computer control of handset features, suchas find features, may be available so that such features are performedautomatically when they are required to perform other handset functions.The computer connectivity features may also permit handset data (e.g.,the results of a find query) to be uploadable to, a computer or othercomputer-based device.

Another accessory which may be provided with the wireless handset of thepresent invention is a tracking device, such as a beeping clip device orpaging device that is secured to an item. Beeping clip and pagingdevices may be attached to items such as keys, wallets and tools tofacilitate the locating of those items. These devices may be clippedonto the item or attached by other suitable means (e.g., an adhesivesurface, a clasp, a chain, etc.). Further, these devices may be embeddedin the item with other components (e.g., as part of a remote lock or keyring) or provided in another form. In any event, the word “clip” is usedherein as a way of generally referring to all types of tracking devices.Accordingly, a beeping clip that clips to an item is an exemplaryembodiment only and the word “clip” should not be construed as limitingthe type of tracking device that may be utilized in the invention.

Each tracking device may have a unique ID and may be entered with otherobjects into the Speed Dial list and Find list of the handset byperforming a memorize function or by entering the same manually. Theuser may also be given the option to individually name each item and toautomatically group items together. By pressing a predetermined key orbutton on the handset with an item (which, for example, has a beepingclip or paging device attached thereto) being highlighted on thedisplay, the selected item will be instructed to beep if it is withinrange. This will then permit the user to locate the item withoutdifficulty. Items with attached clips can also be selected, as withpersons and other objects, to make the items beep or ring whenever theitems start in range but then exceed range, to facilitate ensuring thatthose items are not left behind (such as a tool or wallet) or do notwander away from the user (e.g., a toddler or a pet).

In connection with the Accessory-Related features and the use of clips,various features may be implemented for locating these type of objects.In general, clips may be transmitting or non-transmitting in type. Thatis, the clips may include the capability to transmit a response orbeacon when queried by a handset (i.e., transmitting in type) or may belimited to only emitting an audible beep without transmitting a beaconor response signal (i.e., non-transmitting in type). FIGS. 19A and 19Billustrate an exemplary embodiment for locating a non-transmitting clip.Further, FIGS. 20A and 20B represent the manner by which a transmittingclip can be located by causing the clip to emit a beacon, in accordancewith another embodiment of the invention. Moreover, in accordance withyet another embodiment of the invention, FIGS. 21A and 21B represent themanner by which a transmitting clip can be located by causing the clipto respond with a beacon signal and emit an audible beep. The variousprocesses and operations represented in the flowcharts of FIGS. 19-21may be implemented by any suitable combination of hardware, software,programmed logic and/or firmware. A detailed description of each ofthese embodiments will now be provided.

As noted above, FIGS. 19A and 19B represent an embodiment for locating anon-transmitting clip. In particular, FIG. 19A is an exemplary flowchartof the various processes and operations performed by a handset (i.e.,handset A) which is attempting to locate at non-transmitting clip (i.e.,object B). FIG. 19B illustrates an exemplary logic flow of the variousprocesses and operations that may be performed by object B when queriedby handset A. In the embodiments of FIGS. 19A and 19B, thenon-transmitting clip only transmits an audible beep tone when queried,since it is incapable of transmitting a beacon or response signal.

Referring to FIG. 19A, a non-transmitting clip (i.e., object B) isqueried or called when user A presses the call or send button at stepS.600 with the object B selected or highlighted on the list. Thereafter,at step S.602, handset A queries object B based on the ID of object B atstep S.602. The query at step S.602 includes a beep request so that theobject B will emit an audible beep if it is within range of handset A.If the object B is not within range of handset A, then the query willnot be received and object B will not emit a beep tone. In theembodiment of FIG. 19A, a predefined object or, control channel may beprovided for querying object B. Following step S.602, the procedureterminates at step S.604.

FIG. 19B illustrates the various processes and operations carried out bythe specified clip (object B) when responding to a query from handset A.In particular, at step S.610 other object functions are performed.Thereafter, at step S.612, object B determines whether a query messagewith a beep request has been received from a handset that is withinrange. A dedicated tuner or device may be provided for detecting when abeep request is received over the object channel. The monitoring of thechannel by object B may be performed concurrently with the performanceof other functions at step S.610. If a beep request is not received atstep S.612, then logic flow loops back to step S.610. Otherwise, if aquery with a beep request is received at step S.612, then at step S.614object B emits an audible beep, noise or signal. If object B is heard bythe user of handset A, then the object can be located. Following stepS.614, logic flow returns to step S.610.

In the embodiment of FIGS. 19A and 19B, the object that is called is anon-transmitting type of clip that will only emit an audible beep whenqueried by the handset. Since the non-transmitting clip is not capableof transmitting a beacon or response signal, the querying handset willbe prevented from measuring its relative signal strength and/orproximity. The non-transmitting clip, however, should be less expensivethan a transmitting-type of clip, and may or may not include a memorizebutton for permitting the object to be memorized by a handset.

FIGS. 20A and 20B represent an exemplary embodiment for locating atransmitting-type of clip. In this embodiment, the clip (i.e., object B)is queried by the handset (i.e., handset A) to transmit a positiveresponse or beacon without emitting a beep noise. FIG. 20A is anexemplary flowchart of the various processes and operations that may beperformed by handset A when querying object B for a beacon signal.Further, FIG. 20B is an exemplary logic flow diagram of the processesand operations carried out by the clip B when queried by handset A.

As shown in FIG. 20A, the procedure for finding object B is initializedat step S.620 when user A presses the FIND button on a handset with theclip or object B being selected or highlighted on the Find list.Thereafter, at step S.622, the handset sets the value of the wait_clockto zero. The wait_clock may monitor the elapsed time and may beincremented in accordance with an internal system clock of the handset.Following steps S.622, handset A queries object B at step S.624 based onthe ID associated with object B. This query may be sent on a predefinedobject or control channel for object B.

At step S.626, handset A determines whether a response or beacon signalhas been received. If no response is received at step S.626, then atstep S.628 it is determined whether a predetermined wait time has beenexceeded. In this regard, the value of the wait_clock may be comparedwith the wait time. If the wait_clock is less than the wait time, thenlogic flow loops back to step S.626 to again determine whether aresponse has been received. Otherwise, if a response has not beenreceived and the wait time has been exceeded at step S.628, then at stepS.634 the handset A displays to the user that object B was not found. Inthis regard, an appropriate message (i.e., a “Not Found” message) may bedisplayed on the handset for viewing by the user. Following step S.634,the procedure terminates at step S.636.

If a response or beacon signal is received within the wait time at stepS.626, then at step S.630 the signal strength (SS) of the response ismeasured and recorded. Conventional or standard techniques may beutilized to measure the signal strength of the beacon signal receivedfrom the object B. Following step S.630, the handset at step S.632 willindicate to the user that object B was found. In this regard, handset Amay display the ID and/or name associated with object B along with amessage (i.e., “Found”) indicating that the object was found. Inaddition, handset A may also indicate and display the detected signalstrength (SS) of the beacon signal. The signal strength may be indicatedon the display by use of a numeric value or a sequence of bar segments.Following step S.634, the procedure terminates at step S.636.

FIG. 20B illustrates the various procedures and functions carried out bythe clip (i.e., object B) when being queried by handset A. Inparticular, at step S.640 object B performs other functions.Concurrently with the performance of these functions or following thecompletion of these functions, object B determines at step S.642 whethera find query has been received on the predefined object or controlchannel. In this regard, a dedicated tuner or transceiver may beprovided in the clip device to constantly monitor the channel for findqueries. If it is determined at step S.642 that a find query wasreceived, then at step S.644 the object B will transmit a positiveresponse or beacon signal back to the handset A. Further, since the findquery from handset A did not instruct the object B to emit a beep noise,no audible beep will be emitted by the object. Following step S.644,logic flow loops back to step S.640. Logic flow will also loop back tostep S.640 if it is determined at step S.642 that a find query has notbeen received over the object channel.

In the embodiment of FIGS. 20A and 20B, a simple beacon or responsesignal is emitted by the object to permit the querying handset to detectand measure the signal strength of the signal. The receipt of the beaconor, response signal from object B will serve to indicate to the queryinghandset that the object is within range. Further, the detected signalstrength will also provide a means by which the user of the queryinghandset may determine the relative distance to the object. The beacon orresponse signal that is emitted by object B may contain the ID of theobject or the response may take the form of a direct synchronousconnection to the handset (possibly containing the ID of the object)which is used to measure the signal strength. As noted above, object Bdoes not emit a beep tone and, in fact, may or may not be capable ofemitting such an audible beep. That is, in the embodiment of FIGS. 20Aand 20B, a find query is performed in such a case where the user want toknow if the object is within range, without making the object beep.Although the clip device is a transmitting type of clip and, therefore,is more complicated and expensive than the non-transmitting clip ofFIGS. 19A and 19B, the clip for this embodiment may or may not have amemorize button (an object without a memorize button should be lesscomplicated and expensive).

If a user wishes to determine if an item with an attached beeping clipis within range and to cause the object to beep, then a query of theobject may be performed to measure the signal strength and to cause theobject to emit an audible beep. FIGS. 21A and 21B illustrate anexemplary embodiment for carrying out such a function. In particular,FIG. 21 is an exemplary flowchart of the various processes andoperations that may be performed by a handset (i.e., handset A) tolocate a transmitting-type clip (i.e., object B) and to cause the objectto emit a beep. FIG. 21B is an exemplary logic flow of the variousprocesses and operations carried out by the object B which has beenqueried by handset A. FIGS. 21A and 21B are further discussed below.

In particular, as shown in FIG. 21A, a query to object B is initializedat step S.650 when user A presses the call or send button of the handsetwith the object B being highlighted or selected on the handset.Following step S.650, handset A sets and initializes the value of await_clock to zero. The wait_clock may be provided to keep track of theelapsed time and may be incremented in accordance with an internalsystem clock of the handset. After resetting the wait_clock, handset Aqueries object B at step S.654. The query that is sent at step S.654 mayinclude the ID of object B and may be sent on a predefined object orcontrol channel. Further, this query message means include a beeprequest which will cause object B to, emit an audible tone or noise.

At step S.656, handset A determines whether a positive response orbeacon signal has been received from object B. If no response isreceived at step S.656, then at step S.658 the handset determineswhether the predetermined wait time has been exceeded. This may beperformed by comparing the value of the wait_clock to the wait time. Ifthe wait_clock is less than the wait time, then logic flow loops back tostep S.656 where it is again determined whether the response has beenreceived. Otherwise, if a response has not been received from the objectwithin the wait time, then at step S.664 the handset A indicates to theuser that object B was not found. In this regard, the handset maydisplay a message (i.e., “Not Found”) and/or the ID and namecorresponding to object B. Following step S.664, the procedureterminates at step S.668.

If it is determined at step S.656 that a response has been receivedwithin the wait time, then the response signal or beacon signal isanalyzed and the signal strength is detected and measured. Further, thedetected signal strength (SS) is recorded at step S.660 and then at,step S.662 the handset indicates to the user that object B was found. Atstep S.662, the handset A may display a message (i.e., “Found”) and thesignal strength (SS) of the response received from object B. Asindicated above, the signal strength may be indicated with a numericvalue or through the aid of a bar segment display. Following step S.664,the procedure terminates at step S.668.

The basic procedures and functions performed by the clip device queriedby handset A are illustrated in FIG. 21B. In particular, at step S.670,object B performs other functions. Concurrently with the performance ofthese functions or after the performance of a function, object Bdetermines at step S.672 whether a query has been received on the objector control channel. In this regard, object B may include a dedicatedtuner or device that is constantly monitoring the object channel forqueries and beep requests. If it is determined at step S.672 that aquery with a beep request has been received, then at step S.674 apositive response or beacon signal is sent back to handset A and at stepS.676 object B emits an audible beep noise. Following step S.676, logicflow loops back to step S.670. Logic flow will also return to step S.670if it is determined at step S.672 that a beep request has not beenreceived.

With the embodiment of FIGS. 21A and 21B, the paged clip, device willrespond with a beacon signal and emit an audible beep tone. The responsemay take the form of a beacon signal containing the ID of the object orthe response may simply be a direct synchronous connection to thehandset (possibly containing the ID of the object) which is used tomeasure the signal strength. The transmitting-type clip of FIGS. 21A and21B includes the ability to respond with a positive response signal andto emit an audible beeping tone. The clip device, however, may or maynot have a memorize button to facilitate adding the object to the listedhandset.

As detailed above, clip devices that are provided as accessories with awireless handset may be transmitting or non-transmitting in type.Whether the clip is implemented as a transmitting type object or anon-transmitting type object, a preferred embodiment of the inventiondoes not require the objects to include a memorize button. By notrequiring the memorize button, a user will have to manually program theclip into the list of the handset. However, without the memorize button,clip devices will be less complicated and expensive to implement andprovide as an accessory. Further, for the transmitting type of clipdevice, a preferred embodiment of the invention utilizes the beacontransmission as a response, since this requirement is also believed tobe less expensive than the alternative of providing a direct synchronousconnection to the handset. In accordance with aspects of the presentinvention, FIGS. 35 and 36 are exemplary block diagrams of the maincomponents of a non-transmitting clip device and a transmitting clipdevice, respectively.

In particular, as illustrated in the exemplary block diagram of FIG. 35,non-transmitting clip device 2000 may be implemented through variouscomponents, including a control system 2040, an antenna 2005, atransducer 2010, a receiver 2015, and a memory unit 2020. Aninput/output (I/O) interface 2030 may also be provided for facilitatingcommunication with the other components of the clip device 2000,including the control system 2040. The I/O 2030 may also be configuredto permit downloading and/or uploading of information from memory 2020.In addition, transducer 2010 may be implemented as a speaker, horn, oranother type of device that is capable of generating an audible beeptone in response to a beep request that is received through antenna 2005and receiver 2015. Further, since clip device 2000 is a non-transmittingtype of object, a transmitter is not required in the device.

In contrast, as indicated by reference numeral 3015 in FIG. 36, atransmitting clip device 3000 should include a transmitter as well as areceiver. These components may be provided as a single transceiver whichis capable of receiving and responding to requests and queries fromother objects, including wireless handsets. The other componentsprovided in transmitting clip device 3000 may be similar to thatprovided in the non-transmitting clip device 2000. For example, asillustrated in the exemplary block diagram of FIG. 36, transmitting clipdevice 3000 may also comprise a control system 3040, an antenna 3005, atransducer 3010, a memory unit 3020, and an input/output (I/O) interface3030 for interfacing with the components of the clip device. In theembodiment of FIG. 36, transducer 3010 may be implemented as a speaker,horn, or another type of device that is capable of generating an audiblebeep tone in response to beep requests.

The clip device configurations of FIGS. 35 and 36 may be modified toinclude additional features or components. For example, in order tofacilitate the activation of features, one or more buttons or a keypadmay also be provided in the clip device. Through the use of a keypad orbutton, a user may be permitted to initiate various features, such asthe memorize feature of the invention to exchange information withanother object or handset.

As discussed above, the wireless handset of the present invention may beimplemented with additional procedures or routines to improve theoperation of the handset. In this regard, separate procedures androutines may be provided for detecting and correcting collisions. Acollision may occur when one handset tries to register at the exact sametime as another handset on the registry channel. To detect collisions,each handset may be required to first listen on the registry channelbefore transmitting registry information. If the channel is not open,then the handset may wait until the channel is open before transmittinginformation and registering. Further, if another signal is detectedduring transmission on a channel, then all handsets transmitting duringthat interval may invoke a routine which causes them to wait a randomperiod of time and then retransmit information. Such procedures willensure future collisions with the same handset do not occur. Inaddition, the clock cycles will be reset to synchronize with the newinterval.

In addition, other procedures and routines may be provided to preventchannels or conversations from interfering. For example, it is possiblefor two handsets (i.e., handsets H1 and H2) on a call to occupy achannel (i.e., F1) and that for two other handsets (i.e., H3 and H4) ona call but out of range of H1 and H2, to occupy that same channel, F1.IF H3 and H4 are moving, and come within range of H1 and H2, then theirconversations will interfere. Upon detection of interference on thechannel, the control time slot may be used to renegotiate a new channelfor either. H1 and H2 or H3 and H4. Alternatively, both H1 and H2 and H3and H4 may renegotiate a new channel by transmitting a randomly selectednew channel and indicating the same with control data during the controltime slot. Further, during the control time slot, all four handsets mayrecognize that there is interference and decide which handsets will moveto a different channel.

Various embodiments are disclosed herein for initiating and establishinga call between wireless handsets in a direct handset-to-handsetcommunication mode (see, e.g., FIGS. 5-8). It is of course possible toprovide other implementations and embodiments to support directhandset-to-handset connectivity between wireless handsets. By way ofnon-limiting examples, FIGS. 22-25 illustrate exemplary flowcharts ofthe operations and processes that may be carried out for initiating andestablishing a free call between wireless handsets, in accordance withthe present invention. These embodiments utilize a registry channel forinitiating and establishing a free-call. Call waiting features may alsobe enabled in the wireless handsets of the invention, exemplaryembodiments of which are described below with reference to FIGS. 26-27.

In particular, FIGS. 22A and 22B are exemplary flowcharts of the variousprocesses and operations that may be carried out by a wireless handset(i.e., handset A) when a free call is to be initiated and set up withanother handset (i.e., handset B). FIGS. 23A and 23B illustrate thevarious operations and procedures that may be carried out by handset Bwhen responding to the call request from handset A. In addition, FIGS.24A and 24B are exemplary flowcharts of the functions and procedurescarried out by handset A when negotiating a channel for the call withhandset B, wherein handset A acts as the originator or originating partyfor the channel negotiation. Further, FIGS. 25A and 25B are exemplaryflowcharts of the various procedures and operations carried out byhandset B when negotiating the channel for the call with handset A,wherein handset B acts as the recipient for the channel negotiation.

As shown in FIG. 22A, the call initiation process is started at stepS.700 when the user of handset A presses the appropriate key on thehandset (e.g., a FREE call button) with handset B being selected ordialed. When the call is initiated by handset A, handset B may or maynot be on a call with another handset. To facilitate access, eachhandset may be equipped with call waiting features to permit a user of ahandset to switch between free calls. An embodiment for providing callwaiting is discussed below with reference to FIGS. 26-27. However, inorder to facilitate description of the embodiment of FIGS. 22A and 22B,it will be assumed that handset B is not on a call when the call requestis initiated by handset A.

At step S.702, the transmitter/receiver or tuner of handset A is tunedto a predetermined registry channel. The registry, channel may besimilar to the registry channel that is utilized for performing the Findfeatures of the invention. Alternatively, a separate registry channelmay be established for initiating and establishing a call. After tuningto the registry channel, handset A sets the value of a cycle_clock to 0at step S.704. Similar to the other embodiments disclosed herein, thecycle_clock may be implemented as a counter that is incremented inaccordance with an internal system clock of the handset and may beutilized to monitor the elapsed time.

At step S.706, handset A will monitor and listen to the registry channelin order to determine whether handset B is within range. As furtherdiscussed below, in this embodiment each handset (including handset B)will register on the registry channel every predetermined cycle time(i.e., every times minutes or seconds). The registry message may includethe ID of the registering handset, as well as the status (e.g., Idle orOn Call) of the handset. Handset A will wait and listen to the registrychannel for approximately one predetermined cycle time in order todetermine if handset B is within range. Thus, at step S.708, handset Awill determine whether, a response has been received on the registrychannel. If no response is received, then at step S.710 it will bedetermined whether the value of the cycle_clock is greater than or equalto the predetermined cycle time lithe cycle_clock is less than the cycletime, then logic flow loops back to step S.708 to determine againwhether a handset response has been received. Otherwise, if no responseis detected within the predetermined cycle time, then logic flow willproceed to, step S.714.

At step S.714, handset A will indicate to the user that handset B is outof range. This notification may take the form of displaying the IDand/or corresponding name of handset B, along with a predeterminedmessage (e.g., “Out of Range”). In addition, at step S.714 handset A mayprompt the user to inquire as to whether a network call should be placedin order to contact handset B. If the user decides to contact handset Bthrough a network call, then handset A may place a network call inaccordance with conventional methods or techniques. Following stepS.714, operation of the call initiate routine may terminate at stepS.715, as shown in FIG. 22A.

When a handset response is detected at S.708 within the cycle time,handset A will determine at step S.712 whether the ID of the registeringhandset corresponds to that of handset B. If the handset of theregistering handset does not correspond to the ID of handset B, thenlogic flow proceeds to step S.710, where it is determined whether thecycle time has elapsed. If, however, the II) of the registering handsetcorresponds to that of handset B, then handset B is within range andhandset A may analyze the status information contained in the registrymessage at step S.716 to determine if handset B is idle or on a call.This step may be provided when a separate call waiting feature isenabled in the handset. In such a case, when it is determined thathandset B is on a call, then logic flow may proceed to step S.717 wherethe appropriate call waiting routine is performed by handset A. Anexemplary embodiment of such a call waiting routing is provided belowwith reference to FIGS. 26A and 26B. If it is determined at step S.716that handset B is not on a call, then logic flow proceeds to step S.718.Further, if call waiting features are not enabled in the handset, thenstep S.716 in FIG. 22A may be eliminated and logic flow may proceeddirectly from step S.712 to step S.718.

In accordance with an aspect of the invention, the above-describedroutine of steps S.700-S.715 may be performed on an on-going basis byhandset A such that when the user initiates a call, the handset alreadyknows if handset B is in range and/or if handset B is on a call or not.In such a case, handset A may keep track and store the status of allother handsets on the Find list of handset A. Further, with thisembodiment, a handset on the list may be required to miss apredetermined number of sequential registrations before being recordedas unavailable by handset A.

Referring again to FIG. 22A, at step S.718, handset A transmits a callrequest message to handset B over the registry channel. The call requestmay include the ID of handset A, as well as the ID of the intendedrecipient of the call request (i.e., the ID of handset B). Anappropriate code may also be provided in the message to indicate that acall request is being made. If the call request is received by handsetB, then at step S.720 handset A will attempt to negotiate a channel forthe call with handset B. For channel negotiation, handset A will act asthe originator or originating party, with handset B acting as therecipient or receiving party. An exemplary embodiment of the variousoperations and processes that may be carried out by handset A tonegotiate a channel is discussed below with reference to FIGS. 24A and24B. Following step S.720, handset A will set the value of a wait_clockto 0 at step S.722. That is, after successfully negotiating a channelwith handset B, handset A will wait for a predetermined wait time todetermine if the user of handset B responds to the call request fromhandset A. For this purpose, the wait_clock may be a counter that isincremented in accordance with an internal system clock of the handsetto monitor the elapsed time and determine when the wait time has beenexceeded.

After tuning to the channel negotiated for the call, handset A willlisten and determine whether a response has been received from handset Bat step S.724. As further discussed below, a response message may besent by handset B when it is determined that the user of handset B hasresponded to the call request from handset A. The user of handset B mayrespond to the call request by accepting the call or requesting specialhandling or forwarding of the call (e.g., call forwarding to voice mailor another handset or number). If no response is received from handset Bas step S.724, then at step S.726 handset A will check and determine ifthe value of the wait_clock is greater than or equal to thepredetermined wait time. If the value of the wait_clock is less than thewait time, then logic flow loops back to step S.724. If, however, thewait time has elapsed or been exceeded, then at step S.728 handset Awill assume that the call request was not responded to by the user ofhandset B and will notify the user of handset A that handset B isunavailable. In this regard, the notification to, the user may take theform of a message that is displayed on the display panel of handset AThis display may include the ID and/or name of handset B, along with anappropriate message to indicate that handset B is unavailable (e.g.,“Unavailable”). At this point, handset A may also prompt or ask the user(e.g., through the display panel of the handset) if the call should beplaced through a network. If the user determines to place the callthrough a network, then conventional techniques and methods may beperformed to send the call request through the network. Following stepS.728, the free call initialization routine may terminate at step S.729,as shown in FIG. 22A.

If a positive response is received over the negotiated channel at stepS.724, then logic flow will proceed to step S.730 (see FIG. 22B), whereit will be determined whether the user of handset B has responded to thecall request by accepting the call. The determination at step S.730 maybe made by analyzing the response message received from handset B. Theresponse message may include a code indicating whether the call has beenaccepted or forwarded/transferred. If the call is determined as beingaccepted by handset B, then the user of handset A may initiate aconversation with the user of handset B at step S.736. Further, handsetA will then perform other handset functions, at step S.738, includinghandset registration and listening for queries or requests from otherhandsets. If it is determined that the call was not accepted by the userof handset B at step S.730, then at step S.732 handset A will notifythat the call was rejected. This notification may take the form of amessage on the display panel (e.g., “Call Rejected”). Further, thisnotification may be generated based on the notification selected by theuser of handset B from a number of user definable messages. For example,the user of handset B may send a “Call Back Later” message in responseto one call request, while replying with a “I'll Call You Back” messagein response to another call request. The selected message may betransmitted from handset B as part of the response message sent tohandset A. In addition, handset A may provide a prompt to indicate otheroptions that may be performed by the user of handset A based on theresponse from handset B. For example, an option may be provided to senda request to handset B which forwards the call to a voice mail networkor perform some other function based on the response received fromhandset B. Following step S.732, the routine terminates at step S.734,as shown in FIG. 22B.

FIGS. 23A and 23B are exemplary flowcharts of the various operations andprocesses that may be carried out by handset B when responding to a callrequest from handset A. As noted above, in this embodiment each handsetregisters on a predetermined registry or control channel every cycletime (e.g., every times minutes or seconds). Accordingly, as shown inFIG. 23A, after performing other handset functions at step S.740,handset B will determine at step S.742 whether the predetermined cycletime has elapsed. This is performed by comparing the value of acycle_clock with the predetermined cycle time. If the cycle time haselapsed, then it is time for handset B to register on the registrychannel. As such, at step S.744, handset B will register on the registrychannel by transmitting the ID of handset B and transmitting statusinformation. The status information may include a code to indicatewhether handset B is idle or on a call. Following step S.744, handset Bwill initialize and set the value of the cycle_clock to 0 at step S.746and then proceed to step S.748. Logic flow will also proceed to stepS.748 when it is determined at step S.742 that the cycle_clock is lessthan the predetermined cycle time.

At step S.748, handset B will check to determine whether a call requesthas been received. As noted above, call request may be transmitted overthe registry or control channel, with the call request including the IDof the requesting handset (i.e., the ID of handset A). If a call requestis not detected at step S.748 because, for example, the requestinghandset is out of range or has not transmitted the call request, thenlogic flow loops back to step S.740. If, however, a call request messageis received at step S.748, then handset B will negotiate a channel forthe call at step S.752, with handset B acting as the receiving party.

More particularly, in response to the receipt of a call request fromhandset A, handset B will negotiate a channel for the call at stepS.752, with handset A acting as the originator or originating party.Since handset A initiated the call request and is acting as theoriginating party, handset B will negotiate the channel for the call asthe recipient or receiving party. An exemplary embodiment of the variousprocesses and operations that may be carried out by handset B at stepS.752 to negotiate a channel is described below with reference to FIGS.25A and 25B. Following the successful negotiation of a channel for thecall at step S.752, handset B will query the user of handset B at stepS.754 so as to notify the user of the presence of the call request fromhandset A. This query may take the form of providing an alerting tone(such as a ringing tone, etc.), as well as displaying a message (e.g.,“Incoming Call”) and/or the ID and/or name of handset A. In response tothe query, the user of handset B may respond to the call request (e.g.,by accepting the call, forwarding the call, etc.) or ignore and notrespond to the call request. At step S.756, it is determined whether theuser of handset B has decided to respond to the call. If the user ofhandset B has responded to the call, then at step S.758 a responsemessage is transmitted by handset B to handset A. The response messagemay be transmitted over the channel negotiated for the call. Thereafter,at step S.760, logic flow proceeds depending on the manner in which theuser of handset B has decided to, respond to the call. That is, if theuser of handset B did not accept the call, then logic flow proceeds fromstep S.760 to step S.750, where handset B tunes back to the registrychannel. As shown in FIG. 23A, logic flow will also proceed to stepS.750 when it is determined that the user has not responded to the callrequest at step S.756. Following step S.750, logic flow loops back tostep S.740 so that other handset functions may be performed.

If it is determined at step S.760 that the user has accepted the call,then the user of handset B may be permitted to initiate the conversationwith the user, of handset A at step S.762 (see FIG. 23B). At step S.762,handset B will transmit and receive voice data over the negotiatedchannel with handset A. In addition, at step S.764, handset B willperform other handset functions, including registration on the registrychannel and listening for queries and requests from other handsets.

As discussed above, handset A will negotiate with handset B to select achannel for the free call after transmitting the call request to handsetB (see step S.720 in FIG. 22A). Various procedures and routines may beimplemented to facilitate channel negotiation. Channel negotiation mayalso be utilized to select a new channel for a free call wheninterference has arisen from other handsets that have moved within rangewhile occupying the same channel for the free call or, when otherinterference occurs. FIGS. 24A and 24B illustrate an exemplaryembodiment of the manner in which handset A can negotiate a channel whenacting as the originator or originating party. More specifically, asrepresented at step S.770 in FIG. 24A, handset A needs to negotiate achannel for a free call with handset B, where handset A is acting as theoriginator or originating party. In order to negotiate a channel,handset A will tune to a predetermined registry channel at step S.772.The registry or control channel may be the same as that utilized fordetecting handsets through registry messages. Alternatively, a separateregistry channel may be provided for negotiating channels. In any event,after tuning to the registry channel, handset A transmits a hold requestover the registry channel to handset B at step S.774. The hold requestmessage, which may include the ID of handset A as the originator and theID of handset B as the recipient, may be sent to notify to handset Bthat handset A wishes to negotiate a channel. In response, handset Awill wait or expect for a hold confirmation message to be sent back fromhandset B. Alternatively, this hold request confirmation step may bebypassed in favor of a faster overall negotiation process.

For this purpose, handset A will set the value of a wait_clock to 0 atstep S.776 and determine at step S.778 whether the bold confirmation hasbeen received over the registry channel from handset B. The wait_clockmay be a counter that is incremented with an internal system clock ofthe handset to detect whether the hold confirmation message has beenreceived from handset B within a predetermined wait time. If the holdconfirmation is not received at step S.778, handset A will determine atstep S.780 whether the value of the wait_clock is greater than or equalto the predetermined wait time or period. If the wait time has not beenexceeded, then logic flow will loop back to step S.778. However, if thehold confirmation is not received within the wait time, then at stepS.790 the user of handset A will be alerted that the call request hasfailed. This alert or notification may include providing a displayedmessage and/or tone to the user of handset A to signify that the callhas failed. Following step S.790, the call negotiation procedure orroutine may, terminate at step S.792.

As further shown in FIG. 24A, if a hold confirmation is received at stepS.778, then handset A will proceed and attempt to locate an empty orclear channel for the call. Various methods may be employed to locate achannel. According to an aspect of the invention, a predetermined numberor set of channels may be available for setting up the call. The handsetacting as the originator for the channel negotiation (in this casehandset A) may be given a predetermined number of attempts to locate anempty or clear channel to support the call. Channel frequencies may beselected sequentially, randomly or by a specific algorithm or some othermethod, and then tested to determine activity and use of the channel byother handsets that are within range. Once a clear channel is detected,the originating handset (i.e., handset A) will transmit over theregistry channel to the recipient handset (i.e., handset B) thefrequency or number of the free channel to notify the other handset ofthe proposed channel. The recipient handset may then test and confirm asto whether the proposed channel is acceptable. A channel count may bemaintained in order to determine the number of attempts to find a clearchannel and to determine when the maximum permissible number of trieshas been exceeded. When the maximum number of tries has been exceeded,the call negotiation procedure will fail and terminate.

As illustrated in FIG. 24A, at step S.782, handset A will initialize andset the value of a channel_count to 0. Then, at step S.784, handset Awill compare the value of the channel_count to the predetermined maximumnumber of tries that is permitted (which is represented by the value of“max_tries” in FIG. 24A). If the channel_count is less than themax_tries, then at step S.788 handset A will select a channel (i.e.,channel x) for monitoring. The selection of the channel may be random,sequential, or based on any other method. After selecting a candidatechannel, handset A will listen to the channel for activity at stepS.794. Essentially, handset A will determine if the candidate channel issuitable for handling and supporting the free call between handset A andhandset B. Handset A may determine that the channel is not clear ifother handsets within the area are using the channel for a call or ifthere is unacceptable level of noise on the channel. If the handsetdetermines that the channel is not clear at step S.796, then the valueof the channel_count is incremented by one (i.e.,channel_count=channel_count+1) and logic flow will loop back to stepS.784 to again compare the value of the channel_count to the value ofthe max_tries permitted.

If a clear channel cannot be obtained within the predetermined maximumnumber of permissible tries or attempts, then logic flow, will proceedto step S.786 and handset A will notify handset B that the call attempthas failed. For, this purpose, a call fail notification may be sent as amessage over the registry or control channel to handset B at step S.786.Following step S.786, logic flow proceeds to step S.790 where the userof handset A is alerted that the call failed. The user of handset A maybe alerted by generating an appropriate message (e.g., “Call Failed”)and/or tone. Thereafter, the call negotiation routine may terminate atstep S.792, as shown in FIG. 24A.

If a clear channel is detected at step S.796, then handset A will notifyhandset B of the proposed channel (i.e., channel x) that has beenselected. For this reason, handset A will tune to the registry, channelat step S.798 and then transmit the channel frequency or number of theproposed channel to handset B at step S.800 (see FIG. 24B). Handset Awill then wait for a confirmation message from handset B that theproposed channel is suitable for supporting the free call. As such,handset A will set the value of a wait_clock to 0 at step S.801 anddetermine whether a confirmation response has been received from handsetB at step S.802. Handset A may monitor the registry channel for aresponse for a predetermined wait time before determining that the callnegotiation has failed. Thus, if the value of the wait_clock is lessthan the predetermined wait time at step S.804, then logic flow willloop back to step S.802 to, determine again if a response has beenreceived. If a response is not received within the wait time, then logicflow will proceed to step S.808 where handset A will alert the user thatthe call has failed. Thereafter, the call negotiation routine mayterminate at step S.809.

If a response is received within the wait time from handset B at stepS.802, then at step S.806 handset A will determine whether the selectedchannel (i.e., channel x) has been confirmed by handset B. If thechannel is confirmed by handset B as being suitable for the free call atstep S.806, then at step S.810 handset A will tune to the selectedchannel to permit the user of handset A to initiate conversation withthe user of handset B at step S.812. Further, at step S.814, handset Amay perform other handset functions, including the periodic registrationon the registry channel and monitoring for queries or requests (e.g.,find queries and/or call requests). If, however, the channel selected byhandset A was not cleared or confirmed by handset B, then logic flowwill proceed from step S.806 back to step S.784 (see FIG. 24A) and thevalue of the channel_count will be incremented by one. Handset A willthen attempt to locate another clear channel if the maximum number ofpermissible tries has not been exceeded. Logic flow then proceeds afterstep S.784 as detailed above.

Handset B also performs various operations and procedures whennegotiating a channel with handset A for a free call. In theabove-described example, handset B is acting as the recipient orreceiving party of the call request and is negotiating a channel withhandset A (see, for example, step S.752 in FIG. 23A). Various proceduresand routines may be implemented to permit handset B to negotiate achannel with handset A. FIGS. 25A and 25B illustrate an exemplaryembodiment for handset B to negotiate a channel when acting as therecipient or receiving party.

As represented at step S.816 in FIG. 25A, handset B needs to negotiate achannel with handset A, while acting as the recipient or receivingparty. Since a hold request from handset A is transmitted over theregistry channel, handset B will tune to the registry channel at stepS.818 to determine whether such a hold request has been received withina predetermined wait time. For this purpose, the value of a wait_clockmay be initialized to 0 at step S.820 and, thereafter, incremented inaccordance with an internal system clock of the handset. Further,handset B determines whether a hold request has been received over theregistry channel at step S.821. If a hold request is not determined asbeing received at step S.821, then at step S.822 handset B willdetermine whether the value of the wait_clock is greater than or equalto the predetermined wait time. So long as the wait_clock is less thanthe wait time, logic flow will loop back to step S.821 to determine ifthe hold request has been received over the registry or control channel.

If a hold request is not received within the wait time, then the callnegotiation routine has failed and logic flow will proceed to stepS.825. As shown in FIG. 25A, at step S.825 handset B will determinewhether handsets A and B are continuing on an interrupted call. That is,as discussed above, it is possible that the need to negotiate a channelfor a free call may arise when interference occurs on a channel that isbeing used to support a current call. In such a case, the decision tonegotiate a new channel for the free call may be performed automaticallyby either handset. In addition, the users of handset A and handset B maybe given the ability to determine when it is necessary to negotiate anew channel for the free call. Thus, in addition to negotiating achannel based on a new call request, handset B may also need tonegotiate a new channel (e.g., while acting as a recipient or receivingparty) for an existing call that has been interrupted (e.g., due toother handsets occupying the same channel or unacceptable noise levelson the channel). The call negotiation procedures of the invention maythus be utilized in either case. If handsets A and B are continuing onan interrupted call, then logic flow may proceed to step S.826 where theuser of handset B is alerted that the call has failed. Thereafter, logicflow may proceed to step S.827 where the call negotiation routine willterminate. If, however, handset A and handset B are not continuing on aninterrupted call, then the user of handset B does not need to benotified of the failure of the call request and negotiation, and logicflow may proceed directly from step S.825 to step S.827 where the callnegotiation routine terminates.

As further shown in FIG. 25A, if a hold request is received at stepS.821, then at step S.824 handset B will transmit a hold confirmationmessage back to handset A. The hold confirmation message may betransmitted over the registry channel from handset B to handset A.Thereafter, handset B will wait for handset A to further respond with aselected or proposed channel for the call.

More particularly, as shown in FIG. 25B, handset B will set the value ofa wait_clock2 to 0. The wait_clock2 may be a counter that is incrementedin accordance with an internal system clock of handset B. The value ofthe wait_clock2 may be monitored to determine whether a predeterminedwait time has elapsed without receiving a response from handset A. Thispredetermined wait time should be set in accordance with the maximumnumber of tries that handset A is permitted to locate a suitablechannel. At step S.830, handset B will determine whether a response hasbeen received from handset A Over the registry channel. If a response isnot received, then at step S.832 the value of the wait_clock2 will becompared with the predetermined wait time. If the value of thewait_clock2 is less than the wait time, then logic flow will loop backto step S.830 to again determine whether a response has been received.If a response has been received within the predetermined wait time, thenat step S.833 handset B will check to determine whether handset A hasindicated in the response message that the attempt to locate a freechannel has failed. If a call fail notification message is received,then logic flow proceeds to step S.834. Logic flow will also proceed tostep S.834 if it is determined that a response has not been receivedfrom handset A within the predetermined wait time at steps S.830 andS.832.

At step S.834, handset B will determine whether handsets A and B arecontinuing on an interrupted call. If handsets A and B are continuing onan interrupted call, then at step S.837 handset B will be alerted thatthe call has failed. Thereafter, logic flow proceeds to step S.838 wherethe routine may terminate. If, however, handset A and handset B are notcontinuing on an interrupted call, then the user of handset B does notneed to be notified of the failure of the call request and negotiation,and logic flow may proceed directly from step S.834 to step S.838 wherethe call negotiation routine terminates.

As further shown in FIG. 25B, if handset A has not sent a call failnotification, then handset A has sent the selected or proposed channel(i.e., channel x) and handset B will tune to the proposed channel atstep S.835. Handset A may indicate the number or frequency of theselected channel in the response message after detecting that thechannel is clear, as described above. Handset B will then confirm thatthe selected channel is clear and suitable to support the call. Thus,following step S.835, handset B will determine whether the channel isclear by listening for activity on the channel at step S.836. Handset Bmay check whether the selected channel has become occupied by otherhandsets within the area or whether the noise level of the channel is atan unacceptable level. After listening for activity on the channel,handset B will tune to the registry channel at step S.839 in preparationof transmitting a response message back to handset A. If channel Bdetermines that the selected channel is clear at step S.840, then atstep S.842 handset B will transmit a message to handset A to, indicatethat the selected channel (i.e., channel x) is suitable for setting Upthe call. If, however, handset B determines that the selected channelhas become corrupted or is not clear, then at step S.844 a message willbe transmitted to handset A to indicate that the proposed channel is bador unacceptable for, setting up the call. Following step S.844, logicflow will loop back to step S.828 to wait for an additional responsefrom handset A (i.e., another selected channel or a call failnotification message).

If the proposed channel was determined as being clear and handset A wasnotified that the channel is clear at step S.842, then handset B willtune to the confirmed channel at step S.843. Thereafter, at step S.846,handset B will determine whether handsets A and B are continuing on aninterrupted call. If this is not the case, then the call negotiationroutine may terminate at step S.847. Thereafter, the call initializationprocedure for handset B may continue as indicated, for example, in FIGS.23A and 23B (see, e.g., the steps following step S.752). If, however,handsets A and B are continuing on an interrupted call, then at stepS.848 handset B will permit the user to initiate and continue theconversation with the user of handset A. In addition at step S.849,handset B will perform other handset functions, including handsetregistration on the registry channel and listening for queries andrequests on the registry channel.

As described above, the call negotiation procedures of the presentinvention may be implemented for negotiating a channel when establishinga free call between wireless handsets. In particular, the embodiments ofFIGS. 24 and 25 may be utilized as part of the overall procedures ofFIGS. 22 and 23 for establishing a handset-to-handset call. In addition,the channel negotiation procedures of the invention may be utilized tonegotiate a new channel to avoid interference during a free call. Thatis, the embodiments of FIGS. 24 and 25 may be utilized by wirelesshandsets on a free call to select a new channel when the current channelthat is supporting the free call has become corrupted due to noise orinterference caused by other wireless handsets that have come into rangeand that are occupying the same channel or due to other causes.

As indicated above, the wireless handset of the present invention may beconfigured to include call waiting features, which permit a wirelesshandset to switch between calls from other wireless handsets. FIGS.26-27 illustrate exemplary embodiments for establishing a free callbetween wireless handsets that are enabled with call waiting features,and for switching between free calls. In particular, FIGS. 26A and 26Bare exemplary flowcharts of the various processes and operations carriedout by handset A for initiating a call with handset B, when handset B ison a call with another handset (i.e., handset C). FIGS. 27A and 27B areexemplary flowcharts of the various processes and operations that may becarried out by handset B to handle the call request from handset A,while handset B is on a call with handset C. Lastly, FIG. 27C is anexemplary flowchart of the various processes and operations that may becarried out by handset C when it is placed on hold by handset B toaccept the call request from handset A. In the embodiments of FIGS.26-27 a predetermined registry channel is provided, similar to thatprovided in the embodiments of FIGS. 22-25.

As represented at step S.850 in FIG. 26A, the user of handset Ainitiates a free call to handset B, while handset B is on a call withhandset C. The initiation of the free call may be caused by the user ofhandset A by pressing a predetermined key (i.e., a free call key) on thehandset, with handset B being dialed or selected through the keypadand/or display screen of the handset. In response to the free call beinginitiated, handset A will tune to the predetermined registry or controlchannel at step S.851. Further, at step S.852, the value of acycle_clock will be set to 0. Thereafter, handset A will listen andmonitor the registry channel at step S.853 to determine if handset B iswithin range of the handset A.

In accordance with an aspect of the invention, handset A may listen toand monitor the registry channel for a predetermined cycle time. Thecycle time may correspond to the cycle period by which each handsetregisters on the registry channel. That is, when a handset is idle or ona call, the handset may register on the registry channel everypredetermined cycle time (e.g., every x minutes or seconds). At stepS.854, handset A will first determine if there is a handset response orregistration. If no handset response is detected at step S.854, then atstep S.855 handset A will determine whether the value of the cycle_clockis greater than or equal to the predetermined cycle time. Thecycle_clock may be incremented in accordance with an internal systemclock of the handset, after being initialized in order to keep track ofand monitor the elapsed time of listening to the registry channel thevalue of the cycle_clock is less than the cycle time, then logic flowloops back to, step S.854. Thereafter, handset A may again check to seeif a response is received on the registry channel at step S.854.

If no handset response is received within the cycle time, then logicflow will proceed to step S.857, as shown in FIG. 26A. At step S.857,handset A will assume that handset B is out of range or unavailable. Assuch, handset A may alert the user that handset B is out of range orunavailable by displaying the ID and/or name of handset B along with anappropriate message (e.g., “Out of Range”). In addition, at step S.857,handset A may give the user the option as to whether the call should becontinued by placing the call to handset B through a network. Followingstep S.857, the procedure may terminate at step S.865.

If a handset registration is detected at step S.854, then handset A willdetermine whether the ID of the registering handset corresponds to thatfor handset B, at step S.856. If the ID in the registry messagecorresponds to a different handset, then logic flow proceeds to stepS.855. Otherwise, if the registration was performed by handset B, thenat step S.858 handset A will determine the status of handset B. Thestatus of handset B may be indicated in the registry message whichcomprises a code for indicating whether the handset is idle or on acall. If handset B is not on a call, then a separate routine may beperformed at step S.859. That is, operations and procedures similar tothat discussed above with reference to FIGS. 22A and 22B may beperformed for establishing a free call with handset A when handset B isnot on a call. If, however, handset B is determined to be on a call atstep S.858, then the call waiting aspects of the invention may beutilized.

In particular, at step S.860, handset A will tune to the channel that isindicated in the registry message for contacting handset B. Sincehandset B is on a call with handset C, the channel to contact handset Bmay be the same channel that supports the free call between handset Band handset C. Further, the registry message may indicate a time slotfor contacting handset B. With this information, handset A may transmita call waiting request to handset B over the channel during thedesignated time slot at step S.861. The call waiting request may includethe ID of handset A. Thereafter, handset A will wait for a response fromhandset B. In particular, handset A will set the value of a wait_clockto 0 at step S.862 and then determine whether a response has beenreceived from handset B over the contact channel at step S.863. HandsetA may wait for such a response for a predetermined wait time. The valueof the wait_clock may be incremented in accordance with an internalsystem clock of the handset to determine when the predetermined waittime has elapsed. Thus, at step S.864, the value of the wait_clock maybe compared with the wait time when it is determined that a response hasnot been received at step S.863. If the wait_clock is less than the waittime, then logic flow will loop back to step S.863. Otherwise, at stepS.866, handset A will assume that handset B is unavailable and willnotify the user of the unavailability of handset B. This notificationmay take the form of displaying the ID and/or name of handset B alongwith an appropriate message (e.g., “Unavailable”). Handset A may alsoask the user whether the call should be continued by attempting tocontact handset B through a network. Following step S.866, the procedureor routine may terminate at step S.867.

If a response is received from handset B at step S.863, then handset Awill determine whether the user of handset B has accepted the call atstep S.870 (see FIG. 26B). The determination at step S.870 may be madebased on the response message received from handset B, which may includedata indicating whether the call has been accepted. If the call is notaccepted, then at step S.871 a call rejection message (e.g., “CallRejected”) may be provided to the user of handset A. In addition, anoption to send a request to handset B which forwards the call to a voicemail network to leave a message to handset B may be provided to the userof handset A or another appropriate message may be provided based on theresponse received from handset B. Following step S.871, the proceduremay terminate at step S.872.

If it is determined that the user of handset B has responded andaccepted the call request at step S.870, then at step S.873 handset Apermits the user to initiate the conversation with the user of handsetB. This conversation may take place over the channel previously occupiedby, handset B and C. In addition, at step S.874, handset A will performother handset functions, including registering on the registry channeland listening for query or request messages.

FIGS. 27A and 27B are exemplary flowcharts of the various processes andoperations that may be carried out by handset B for receiving the callrequest from handset A, while handset B is on another call with handsetC. In this embodiment, each handset (including handset B) registers on apredetermined registry, channel every cycle time. Thus, after performingother handset functions at step S.876, handset B will determine whetherthe predetermined cycle time has elapsed at step S.877, as shown in FIG.27A. This may be performed by comparing the value of a cycle_clock tothat of the cycle time. The cycle_clock may be maintained as a counterand incremented in accordance with an internal system clock of thehandset. If the value of the cycle_clock is less than the cycle time,then logic flow proceeds to step S.884. Otherwise, as shown in FIG. 27A,logic flow proceeds to step S.878.

When it is time to register on the registry channel, handset B will tuneto the registry channel, as indicated at step S.878. Thereafter, at stepS.879, handset B will transmit the channel number or frequency at whichhandset B can be contacted, as well as the ID of handset. B. Whenhandset B is on a free call, the channel to contact handset B may be thechannel of the free call. Handset B may also transit at step S.879 thebeginning and ending time of a time slot for contacting handset B or thetime domain multiplexing control time slot. Following step S.879,handset B tunes to the previous channel (i.e., the channel on which thecall with handset C is being supported) as shown at step S.880.

Following step S.880, handset B initializes the value of the cycle_clockto 0 at step S.882. Logic flow then proceeds to step S.884. At stepS.884, handset B determines whether the value of the cycle_clockcorresponds to a time within the indicated control time slot. Thisdetermination may be performed by determining whether the value of thecycle_clock is greater than or equal to the slot start time and whetherthe cycle_clock is also less than or equal to the slot end time. Thistime could also be the control time slot used if time domainmultiplexing is utilized by the handsets for contacting one another. Inany event, if both of these conditions are not satisfied, then logicflow loop backs to step S.876. If, however, the value of the cycle_clockcorresponds to the control slot time, then handset B will determinewhether a tall waiting request has been received at step S.885.

In particular, at step S.885 handset B determines whether a call waitingrequest has been received from another handset. If a call waitingrequest is not received, then logic flow loops back to step S.876 sothat handset B may perform other handset functions. If a call waitingrequest is detected at step S.885, then handset B will analyze the callwaiting request information and, based on this analysis, query the userof handset B to notify the user that a call request has been received atstep S.886. This query or notification may include the displaying of amessage containing the ID of the handset that sent the call waitingrequest (e.g., the ID of handset A) and/or the generation of anappropriate tone to indicate that a call waiting request has beenreceived. Following step S.886, it is determined at step S.887 whetherthe user of handset B has decided to respond to the call waitingrequest. The user of handset B may respond to the call waiting requestby pressing an appropriate key on the handset to signify the acceptanceof the call waiting request and to indicate that handset C should beplaced on hold. By pressing other keys on the handset, the user ofhandset B may also, respond to the call waiting request by transferringor forwarding handset A to a voice mail system or to a different handsetor location, or by sending a call reject message. If it is determinedthat the user of handset B has not responded at step S.887 within apredetermined amount of time, then logic flow may loop back to stepS.876. If the user does respond, then at step S.888 handset B willtransmit a response message to handset A based on the manner on whichthe user has responded to the call waiting, request. The responsemessage may include information indicating whether the user of handset Bhas determined to accept the call or to place/forward handset A to avoice mail system, etc. If the user of handset B decided not to acceptthe call but to forward handset A to a voice mail system or anotherlocation, then logic flow will loop back to step S.876 where otherappropriate handset functions may be performed. If the user of handset Baccepted the call request from handset A, then at step S.890 (see FIG.27B) handset B will transmit to handset C a request to hold the presentcall. This hold request to handset C may be transmitted during a definedtime slot (i.e., the control time slot available for control functionsin a time domain multiplexing system, or the time slot that the otherhandset uses to register when time domain multiplexing is not used). Inaddition, the hold request may designate a channel at which handset C isto switch to and wait for a possible further call request from handsetB. This channel may be the registry channel or another predeterminedchannel. Following step S.890, the user of handset B is permitted toinitiate and conduct a conversation with the user of handset A at stepS.892. Handset B will also perform other handset functions at stepS.894, including periodic registration on the registry channel andlistening for queries and requests from other handsets.

With the call waiting features of the present invention, the user ofhandset B may determine to reestablish or switch back to a call withhandset C after completing or while conducting the call with handset A.As illustrated at step S.895 in FIG. 27B, handset B may periodicallycheck to see if the user of handset B has requested to recontact withhandset C. The user of handset B may indicate a request to recontactwith handset C by pressing an appropriate key or button on the handset.If there is no request to recontact, then logic flow will loop back tostep S.894 from step S.895. Otherwise, when a request to recontact hasbeen detected, logic flow proceeds from step S.895 to step S.896.

At step S.896, handset B will transmit to handset A a hold requestmessage. This request will indicate to handset A that it should switchand wait for a possible recontact request from handset B on anotherchannel. This channel may be the registry channel, or anotherpredetermined channel. Following step S.896, handset B will tune to theregistry channel or another predetermined channel at step S.897 and theninitiate a new call request with handset C at step S.898. The call maythen be setup and supported over the same channel for the previous callbetween handset A and handset B. The procedures performed at step S.898may include the initiation/negotiation procedures for a new call inaccordance with any one of the embodiments disclosed herein that utilizea registry channel; if deemed appropriate by the handsets (e.g., forinterference reasons). Following step S.898, the user of handset B willhave the option of completing the call with handset C and/or switchingback to the call with handset A to continue the conversation with theuser of handset A.

In the above-described embodiment, a call request is sent from handset Ato handset B, while handset B is on a call with handset C. In accordancewith the call waiting features of the present invention, handset. C maybe placed on hold while handset B switches between the call with handsetC and handset A. While handset C is placed on hold, handset C can also,accept call requests from other handsets that are within range. FIG. 27Cis an exemplary flowchart of the various processes and operations thatmay be carried out by handset C for enabling the call waiting featuresof the invention. In the embodiment of FIG. 27C, a registry or controlchannel is provided.

As represented at step S.900 in FIG. 27C, handset C is in conversationand on a call with handset B, when handset B receives a call requestfrom handset A. If the user of handset B determines to respond to andaccept the call wailing request, then handset B will place handset C onhold by transmitting a hold request message. Thus, at step S.902,handset C determines whether a hold request message has been receivedfrom handset B. As indicated above, the hold request may be transmittedduring the defined time slot on the channel supporting the call betweenhandset B and handset C. The hold request message from handset B mayindicate a channel on which handset C is to wait and hold for furtherresponse from handset B. This channel may be a predetermined channel,such as the registry channel, or another appropriate channel. If a holdrequest is received at step S.902, then at step S.904 handset C willtune to the registry channel. If a hold request is not received at stepS.902, then logic flow loops back to step S.900, where handset C ispermitted to perform other handset functions and the call betweenhandset B and handset C is maintained.

After receiving a hold request message and tuning to the registrychannel at step S.904, handset C will monitor and listen for a recontactrequest from handset B or a call request from another handset. Thus, atstep S.905, handset C will listen to the registry channel and determinewhether a call request has been received. If no call request has beenreceived at step S.905, then at step S.906 handset C will continue toperform other handset functions, including periodic registration on theregistry channel and listening for other queries. Handset C will alsocontinue to check at step S.905 whether a call request has beenreceived.

When a call request has been received at step S.905, handset C willdetermine at step S.907 whether the call request was from handset B.Specifically, handset C determines whether the request is a recontactrequest from handset B. If the request is not from handset B, then thecall request was sent from another handset and at step S.908 handset Cmay receive the call request from the other handset while acting as arecipient of the call request. Various procedures and operations may beperformed at step S.908, such as those described above with reference toFIGS. 23A and 23B, for handling a new call request. If the user ofhandset C decides to receive the call request and initiate aconversation with the user of the other handset, then handset C maynegotiate a channel for the call (while acting as the receiving party)with the other handset. If the user of handset C decides to refuse thecall request, then logic flow will return to step S.904, where handset Ctunes back to the registry channel and again listens for call request orrecontact request.

If it is determined that a recontact request was received from handset Bat step S.907, then at step S.910 a channel is negotiated with handset Bto set up and reestablish the direct handset-to-handset communicationbetween handset B and handset C. The user of handset C may then initiatea conversation with the user of handset B at step S.912. Thereafter, atstep S.914, handset C may perform other handset functions, includingregistration and listening for queries and requests.

The call waiting features of the present invention may be modified orenhanced to provide other capabilities. For example, it is possible tomodify the above-described embodiments of FIGS. 26-27 so that a user ispermitted to, place more than one handset on hold, since a handset (suchas handset C) is not physically placed on hold to seize a particularchannel or line when a call waiting request is accepted. With thisfeature, the handset may display to the user a list of the handsets thathave been placed on hold, so that the user may freely select andrecontact with handsets that have been placed on hold. The process ofswitching between handsets may continue indefinitely and with anunlimited number of handsets. Further, the user of the handset may bepermitted to receive and respond to more than one call waiting requestto provide enhanced operating capabilities.

The above-described embodiments of FIGS. 22-27 are based upon the use ofa registry or control channel. In such a case, a separate or dedicatedtuner is not required for each of the handsets, since a single tuner maybe utilized for supporting calls and periodically registering on theregistry channel. It is of course possible to provide modifiedembodiments corresponding to that of FIGS. 22-27, in which a separatetuner is provided in each handset that is tuned to a dedicated controlchannel. Through the use of such a dedicated channel, a free call may beinitiated and established between handsets, and various call waitingfeatures may be enabled.

By way of non-limiting examples, FIGS. 28-31 are exemplary embodimentsfor handling call requests and negotiating channels for free callsthrough the use of a dedicated channel. In particular, FIG. 28 is anexemplary flowchart of the various processes and operations that may becarried out to initiate a call request and establish a free call throughthe use of a dedicated channel. In FIG. 28, it is assumed that handset Ahas initiated a call request and is attempting to establish a directhandset-to-handset call with handset B. Further, it is assumed thathandset B is not on call with another handset. FIG. 29 illustrates thevarious operations and procedures that may be carried out by handset Bwhen responding to the call request from handset A. In addition, FIGS.30A and 30B are exemplary flowcharts of the functions and procedurescarried out by handset A when negotiating a channel for the call withhandset B, wherein handset A acts as the originator or originating partyfor the channel negotiation. Further, FIGS. 31A and 31B are exemplaryflowcharts of the various procedures and operations carried out byhandset B when negotiating the channel for the call with handset A,wherein handset B acts as the recipient for the channel negotiation.

As represented at step S.918 of FIG. 28, the call request procedure isinitiated when the user of handset A presses the appropriate key orbutton on the handset (e.g., the free call button) with handset B beingselected or dialed through the keypad and/or display screen of thehandset. Following step S.918, handset A will transmit a call request tohandset B at step S.920. As noted above, it is assumed that handset B isnot on a call when the call request is initiated. The call requestmessage may include the ID of handset A as well as the ID of handset Bto indicate the handset to which the call request is directed. Inaddition, the call request may be transmitted from handset A to handsetB over a dedicated control channel. That is, in the embodiment of FIG.28, each handset is equipped with a separate tuner which is always tunedto a dedicated control channel. As a result, handsets are not requiredto periodically register on a registry channel and interruptions tocalls (for registering, etc.) is eliminated.

After transmitting the call request, handset A will then attempt tonegotiate a channel with handset B for establishing the call at stepS.921. Since handset A initiated the call request, handset A will act asthe originating party when negotiating a channel with handset B. Variousprocedures and operations may be performed for negotiating a channel. Anexemplary embodiment for negotiating a channel through the use of adedicated control channel is discussed below with reference to FIGS. 30Aand 30B. In FIGS. 30A and 30B, handset A negotiates a channel withhandset B, while handset A acts as the originator. Following thesuccessful selection of a channel, handset A then awaits for a responsefrom handset B to determine whether the user of handset B has respondedand accepted the call request.

In particular, as illustrated in FIG. 28, handset A will set the valueof a wait_clock to 0 at step S.922 and then determine at step S.923whether a response from handset B has been received. Handset A maymonitor and listen to the dedicated control channel for a predeterminedwait time to receive a response from handset B. To monitor the waittime, the value of the wait_clock may be incremented in accordance withan internal system clock of the handset and the value of the wait_clockmay be periodically compared with the predetermined wait time. Thus, ifa response is not received at step S.923, handset A will determine atstep S.924 whether the value of the wait_clock is greater than or equalto the wait time. If the wait time has not elapsed, then logic flowloops back to step S.923 where handset A again determines whether aresponse has been received.

If a response from handset B has not been received within thepredetermined wait time, then at step S.925 handset A assumes thathandset B is unavailable or out of range. As such, handset A will notifythe user that handset B is unavailable. This notification may beperformed by displaying the ID and/or name of handset B along with anappropriate message (e.g., “Unavailable”). In addition, at step S.925handset A may prompt the user as to whether the call should be attemptedthrough the use of a network. If the user decides to place a networkcall, then handset A may place a network call to handset B usingconventional methods or techniques. Following step S.925, the proceduremay terminate at step S.926.

If a response from handset B is received over the dedicated controlchannel at step S.923, then at step S.928 handset A determines whetherthe user of handset B has accepted the call. The determination at stepS.928 may be made by evaluating the response message received fromhandset B. The response message may indicate whether the user of handsetB has responded to the call by accepting the call or by requestingspecial handling of the call (e.g., by transferring to a voice mailsystem or call forwarding). If it is determined at step S.928 that theuser of handset B has decided to accept the call, then at step S.932handset A permits the user to initiate a conversation with the user ofhandset B. In addition, at step S.934, handset A proceeds by performingother handset functions, including listening for queries or requestsover the dedicated control channel.

If it is determined at step S.928 that the user of handset B hasresponded to the call without accepting the call, then at step S.930handset A notifies the user that the call has been rejected. Thisnotification may take the form of displaying an appropriate message(e.g., “Call Rejected”). In addition, depending on the response fromhandset B and the manner in which the user of handset B has responded tothe call request, handset A may also prompt the user for various options(e.g., transferring to the voice mail system of handset B or forwardingthe call to another handset or location). Following step S.930, theprocedure may terminate at step S.931.

FIG. 29 is an exemplary flowchart of the various processes andoperations and may be carried out by handset B when responding to a callrequest from handset A over a dedicated control channel. In particular,following the performance of other handset functions at step S.938,handset B may determine at step S.940 whether a call request has beenreceived over the dedicated control channel. For this purpose, handset Bmay have a separate tuner that constantly listens and monitors thededicated control channel for call requests. Handset B may perform thisfunction simultaneously with the performance of other handset functions.If a call request is not received, then logic flow loops back to stepS.938. Otherwise, if a call request has been received at step S.940,then logic flow proceeds to step S.942, as shown in FIG. 29.

At step S.942, handset B negotiates a channel for setting up the callwith handset A. Since handset B has received the call request that wasinitiated by handset A, handset B acts as the receiving party whennegotiating the channel. Various procedures and operations may beperformed by handset B to negotiate a channel with handset A. Forexample, the exemplary embodiment of FIGS. 31A and 31B may be utilizedby handset B to negotiate a channel with handset A through the use of adedicated control channel. In the embodiment of FIGS. 31A and 31B,handset B negotiates a channel with handset A, while handset B acts asthe receiving party. Following the successful negotiation of a channelfor the call, handset B will then determine if the user wishes torespond to the call request from handset A.

In particular, at step S.944, handset B will query the user regardingthe presence of a call request from handset A. This query ornotification may include the displaying of a message indicating the IDand/or name of handset A and/or the generating of an appropriate tone.Following step S.944, handset B will determine whether the user hasresponded to the call request at step S.946. This determination may bemade by determining whether one or more appropriate keys or buttons onthe handset have been pressed by the user to respond to the callrequest. If the user of handset B does not respond to the call request,then logic flow loops back to step S.938 from step S.946. However, ifthe user of handset B does respond to the call request, then at stepS.948 handset B will transmit an appropriate response message to handsetA over the dedicated control channel based on the manner in which theuser responded to the call request. As discussed above, the responsemessage from handset B may indicate whether the user of handset B hasresponded to the call by accepting the call or by rejecting the call andrequesting specialized handling of the call (i.e., forwarding to a voicemail system or to a different handset or location).

Further, handset B will respond depending on whether the user hasaccepted the call. That is, if it is determined at step S.950 that theuser has not accepted the call, then logic flow will proceed back tostep S.938. However, if the user has accepted the call, then logic flowwill proceed from step S.950 to step S.952. At step S.952, handset Bwill permit the user to initiate a conversation with the user of handsetA by supporting the call over the negotiated channel. In addition, atstep S.954 handset B will perform other handset functions, includinglistening for queries or requests over the dedicated control channel.

As discussed above with reference to FIGS. 28 and 29, handsets A and Bwill negotiate a channel when setting up a free call. The exemplaryflowcharts of FIGS. 30-31 illustrate embodiments for negotiating achannel through the use of a dedicated control channel. In particular,FIGS. 30A and 30B are exemplary flowcharts of the various processes andoperations that may be carried out by handset A when negotiating achannel with handset B. In the embodiment of FIGS. 30A and 30B, handsetA acts as the originator or originating party. In addition, FIGS. 31Aand 31B are exemplary flowcharts of the various processes and operationsthat may be carried out by handset B when negotiating a channel withhandset A. In FIGS. 31A and 31B, handset B acts as the recipient orreceiving party when negotiating the channel with handset A.

As indicated above, handset A will negotiate with handset B to select achannel for the call after transmitting the call request to handset B(see step S.921 in FIG. 28). Various procedures and routines may beimplemented to facilitate channel negotiation. FIGS. 30A and 30Billustrate an exemplary embodiment of the manner in which handset A cannegotiate a channel when acting as the originator of the call request.More specifically, as represented at step S.960 in FIG. 30A, handset Aneeds to negotiate a channel for the call with handset B, where handsetA is acting as the originator or originating party. In order tonegotiate a channel, handset A may utilize the dedicated control channelto communicate with handset B. Thus, following step S.960, handset A maytransmit a hold request over the dedicated control channel to handset Bat step S.961. The hold request message, which may include the ID ofhandset A (acting as the originator) and the ID of handset B (acting asthe recipient), may be sent to signify to handset B that handset Awishes to negotiate a channel. In response, handset A will anticipateand wait for a hold confirmation message to be sent back from handset B.

For this purpose, handset A will set the value of a wait_clock to 0 atstep S.962 and then determine at step S.963 whether the holdconfirmation has been received over the dedicated control channel fromhandset B. The wait_clock may be a counter that is incremented inaccordance with an internal system clock of the handset to detectwhether the hold confirmation message has been received within apredetermined wait time. Thus, if the hold confirmation is not receivedat step S.963, handset A will determine at step S.964 whether the valueof the wait_clock is greater than or equal to the predetermined waittime or period. If the wait time has not been exceeded, then logic flowwill loop back to step S.963. However, if the hold confirmation is notreceived within the wait time, then at step S.972 the user of handset Awill be alerted that the call request has failed. This alert ornotification may include a displayed message and/or audible tone that isprovided to the user by handset A to signify that the call has failed.Following step S.972, the call negotiation procedure or routine mayterminate at step S.973. Alternatively, the hold request confirmationstep may be bypassed in favor of a faster overall negotiation process.

As further shown in FIG. 30A, if a hold confirmation is received fromhandset B at step S.970, then handset A will proceed and attempt tolocate an empty or clear channel for the call. Various methods may beemployed to, locate a channel. According to an aspect of the invention,a predetermined number or set of channels may be available for settingup the call. The handset acting as the originator for the channelnegotiation (in this case handset A) may be given a predetermined numberof attempts to locate an empty or clear channel to support the call.Channel frequencies may be selected sequentially, randomly or by anothermethod, and then tested to determine activity and possible use of thechannel by other handsets that are within range. Once a clear channel isdetected, the originating handset (i.e., handset A) will transmit to therecipient handset (i.e., handset B) the channel frequency or number ofthe clear channel over the dedicated control channel to notify the otherhandset of the proposed channel. A channel count may be maintained inorder to determine the number of attempts to find a clear channel and todetermine when the maximum permissible number of tries has beenexceeded. When the maximum number of tries has been exceeded, the callnegotiation procedure will fail and terminate.

For this purpose, the value of a channel_count is set to 0 at step S.966and then handset A compares the value of the channel_count with themaximum number of tries that is permitted at step S.966 (represented bymax_tries in FIG. 30A). If the channel_count is less than the max_tries,then at step S.970 handset A will select a channel (i.e., channel x) formonitoring. The selection of the channel may be random, sequential, orbased on any other method. After selecting a candidate channel, handsetA will listen to the channel for activity at step S.970. Essentially,handset A will determine if the candidate channel is suitable forhandling the call between handset A and handset B. Handset A maydetermine that the channel is not clear if other handsets within thearea are using the channel for a call or if there is unacceptable noiseon the channel. If the handset determines that the channel is not clearat step S.974, then the value of the channel_count is incremented by oneand logic flow loops back to step S.967 to again compare the value ofthe channel_count to the max_tries permitted.

If a clear channel cannot be obtained within the maximum number ofpermissible tries or attempts, then logic flow will proceed to stepS.968 and handset A will notify handset B that the call attempt hasfailed. That is, a call fail notification may be sent by handset A as amessage over the dedicated control channel to handset B at step S.968.Following step S.968, logic flow proceeds to step S.964 where handset Awill alert the user that the call failed. The call negotiation routinewill then terminate at step S.973.

If a clear channel is detected at step S.974, then handset A will notifyhandset B of the channel (i.e., channel x) that has been detected. Forthis reason, handset A will transmit the channel frequency or number ofthe proposed channel to handset B over the dedicated control channel atstep S.976 (see FIG. 30B). Handset A will then wait for a confirmationmessage from handset B that the proposed channel is suitable for settingup the call. As such, handset A will set the value of a wait_clock to 0at step S.977 and determine whether a confirmation response has beenreceived from handset B at step S.978. Handset A may monitor thededicated control channel for a confirmation response for apredetermined wait time before determining that the call negotiation hasfailed (e.g., due to handset B going out of range, etc.). Thus, if thevalue of the wait_clock is less than the predetermined wait time at stepS.980, then logic flow will loop to step S.978 to determine again if aresponse has been received. If a response is not received within thewait time, then logic flow will proceed to step S.981 where handset Awill alert the user that the call has failed. Thereafter, the callnegotiation routine may terminate at step S.982, as shown in FIG. 30B.

If a response is received from handset B within the wait time at stepS.978, then at step S.984 handset A will determine whether the selectedchannel (i.e., channel x) has been confirmed by handset B. Thisdetermination may be made by analyzing the response from handset B andwhether the proposed channel was confirmed by handset B as being clear.If the channel is confirmed as being suitable by handset B at stepS.984, then at step S.985 handset A will tune to the selected channel topermit the user of handset A to initiate conversation with the user ofhandset B at step S.985. Further, at step S.986, handset A may performother handset functions, including monitoring for queries and requests(e.g., find queries and/or call request queries from other handsets).If, however, the channel selected by handset A was not cleared orconfirmed by handset B, then logic flow will proceed from step S.984back to step S.967 (see FIG. 30A) and the value of the channel_countwill be incremented by one. Handset A will then attempt to locateanother clear channel if the maximum number of permissible tries has notbeen exceeded. Logic flow then proceeds after step S.967 as detailedabove.

Handset B also performs various operations and procedures whennegotiating a channel with handset A. In the above-described example,handset B is acting as the recipient or receiving party of the callrequest and is negotiating a channel with handset A (see, for example,step S.942 in FIG. 29). Various procedures and routines may beimplemented to permit handset B to negotiate a channel with handset A.FIGS. 31A and 31B illustrate an exemplary embodiment for handset B tonegotiate a channel when acting as the recipient or receiving party.

As represented at step S.990 in FIG. 31A, handset B needs to negotiate achannel with handset A, while acting as the recipient or receivingparty. For this purpose, the value of a wait_clock may be initialized to0 at step S.992 and thereafter incremented in accordance with aninternal system clock of the handset. If a hold request is notdetermined as being received over the dedicated control channel at stepS.994, then at step S.995 handset B will determine whether the value ofthe wait_clock is greater than or equal to the predetermined wait time.So long as the wait_clock is less than the wait time, logic flow willloop back to step S.994 to again check if a hold request has beenreceived over the dedicated control channel.

If a hold request is not received within the wait time, then logic flowwill proceed to step S.998 where it is determined whether handset Aand/or handset B are continuing an interrupted call. That is, asdiscussed above, it is possible that the need to negotiate a channel fora free call may arise when interference occurs on a channel that isbeing used to support a current call. In such a case, either handset mayautomatically determine that it is necessary to negotiate a new channelfor the call. In addition, the users of handset A and handset B may beprovided with the ability to determine when to negotiate a new channelfor the free call. Thus, in addition to negotiating a channel based on anew call request, handset B may also need to negotiate a new channel(e.g., while acting as a recipient or receiving party) for an existingcall that has been interrupted (e.g., due to other handsets occupyingthe same channel or unacceptable noise levels on the channel). The callnegotiation procedures of the invention may thus be utilized in eithercase. If handsets A and B are continuing on an interrupted call, thenlogic flow may proceed to step S.999 where the user of handset R isalerted that the call has failed. Thereafter, logic, flow may proceed tostep S.1000 where the call negotiation routine will terminate. If,however, handset A and handset B are not continuing on an interruptedcall, then the user of handset B does not need to be notified of thefailure of the call request and negotiation, and logic flow may proceeddirectly from step S.998 to step S.1000 where the call negotiationroutine terminates.

As further shown in FIG. 31A, if a hold request is received at stepS.994, then at step S.996 handset B will transmit a hold confirmationmessage back to handset A over the dedicated control channel.Thereafter, handset B will wait for handset A to further respond withthe proposed channel for the call within a predetermined wait time.

More particularly, as shown in FIG. 31B, handset B will set the value ofa wait_clock2 to 0. The wait_clock2 may be a counter that is incrementedin accordance with an internal system clock of handset B. The value ofthe wait_clock2 may be monitored to determine whether the predeterminedwait time has elapsed. The predetermined wait time should be set inaccordance with the maximum number of tries that handset A is permittedto locate a suitable channel. At step S.1004, handset B will determinewhether a response has been received from handset A over the dedicatedcontrol channel. If a response is not received, then at step S.1005, thevalue of the wait_clock2 will be compared with the predetermined waittime. If the value of the wait_clock2 is less than the wait time, thenlogic flow will loop back to step S.1004 to again determine whether aresponse has been received. If a response has been received within thepredetermined wait time, then at step S.1006 handset B will determinewhether handset A has indicated in the response message that the attemptto locate a free channel has failed. If a call fail notification isreceived, then logic flow proceeds to step S.1008. Logic flow will alsoproceed to step S.1008 if it is determined that a response has not beenreceived from handset A within the predetermined wait time at stepsS.1004 and S.1005 of FIG. 31B.

At step S.1008, handset B will determine whether handsets A and B arecontinuing on an interrupted call. If handsets A and B are continuing onan interrupted call, then at step S.1011 handset B will be alerted thatthe call has failed. Thereafter, logic flow proceeds to step S.1012where the routine may terminate. If, however, handset A and handset Bare not continuing on an interrupted call, then the user of handset Bdoes not need to be notified of the failure of the call request andnegotiation, and logic flow may proceed directly from step S.1008, tostep S.1012 where the call negotiation routine terminates.

As further shown in FIG. 31B, if handset A has not sent a call failnotification, then handset B will tune to the proposed channel (i.e.,channel x) at step S.1010 and listen for activity on the channel. Asdescribed above, handset A will indicate the number or frequency of theproposed channel in the response message after detecting that thechannel is clear. Handset B will then test and confirm as to whetherproposed channel is clear for supporting the call. Handset B may checkwhether the selected channel has become occupied by other handsetswithin the area or whether the noise over the channel has risen to anunacceptable level. If handset B determines that the selected channel isclear at step S.1014, then at step S.1016 handset B will transmit amessage to handset A to indicate that the selected channel (i.e.,channel x) is suitable for setting up the call. If, however, handset Bdetermines that the selected channel has become corrupted or is notclear, then at step S.1018 a message will be transmitted to handset A toindicate that the proposed channel is bad or unacceptable for setting upthe call. Following step S.1018, logic flow will loop back to stepS.1002 to, wait for an additional response from handset A (i.e., anotherselected channel or a call fail notification message).

Following step S.1016, handset B will determine whether handset A andhandset B are continuing on an interrupted call at step S.1020. Ifhandset A and B are not continuing on an interrupted call, then the callnegotiation routine may terminate at step S.1021. If, however, handsetsA and B are continuing on an interrupted call, then at step S.1022handset B will permit the user to initiate a conversation with the userof handset A on the selected channel. In addition at step S.1024,handset B will perform other handset functions, including listening foradditional queries or messages on the dedicated control channel.

As described above, the call negotiation procedures of the invention maybe implemented for negotiating a channel when establishing a free callbetween wireless handsets. In particular, the embodiments of FIGS. 30-31may be utilized as part of the overall procedures of FIGS. 28 and 29 forestablishing a handset-to-handset call. In addition, the channelnegotiation procedures of the invention may be utilized to negotiate anew channel to avoid interference during a free call. That is, theembodiments of FIGS. 30-31 may be utilized by wireless handsets on afree call to select a new channel when the current channel that issupporting the free call has become corrupted due to noise orinterference caused by other wireless handsets that have come into rangeand that are occupying the same channel.

The embodiments of FIGS. 28-31 may be modified and/or adapted to enablecall waiting features. Such call waiting features, as described above,may permit handset users to be notified when a call request has beenreceived during a call with another handset user, and to permit handsetusers to selectively switch between calls. FIGS. 32-34 illustrateexemplary embodiments for establishing a free call between wirelesshandsets that are provided with call waiting features. In each of theseembodiments, a dedicated control channel is utilized with each handsetincluding a separate tuner that is always tuned to the dedicated controlchannel. In particular, FIG. 32 is an exemplary flowchart of the variousprocesses and operations carried out by handset A for initiating a callwith handset B, when handset B is on a call with another handset (i.e.,handset C). Further, FIG. 33 is an exemplary flowchart of the variousprocesses and operations that may be carried out by handset B to handlethe call request from handset A, while handset B is on a call withhandset C. Lastly, FIG. 34 is an exemplary flowchart of the variousprocesses and operations that may be carried out by handset C, when itis placed on hold by handset B to accept the call request from handsetA. In the embodiments of FIGS. 32-34, it is assumed that a dedicatedtuner and predetermined control channel are provided, similar to thatprovided in the embodiments of FIGS. 28-31.

As represented at step S.1030 in FIG. 32, handset A is attempting toestablish a call with handset B, while handset B is on a call withhandset C. A free call may be initiated by the user of handset A bypressing a predetermined key or button (i.e., the free call button orkey) after dialing or selecting handset B. If handset B is an a call, acall waiting request may be transmitted over the dedicated controlchannel. That is, at step S.1032, handset A transmits a call waitingrequest to handset B over the dedicated control channel, with therequest containing the ID of handset A. The ID of handset B may also beincluded in the call waiting request message to indicate to whichhandset the call waiting request is directed. Following step S.1032,handset A sets the value of a wait_clock to 0 at step S.1034 and listensto the dedicated control channel for a response from handset B. Inparticular, at step S.1036, handset A determines whether a response hasbeen received from handset B. If no response is detected, then at stepS.1038 the value of the wait_clock is compared to a predetermined waittime. If handset A determines that the value of the wait_clock, whichmay be incremented in accordance with an internal system clock of thehandset, is less than the predetermined wait time, then logic flow loopsback to step S.1036. Handset A will then again determine whether aresponse has been received.

If a response is not received from handset B within the predeterminedwait time, then at step S.1042 handset A will assume that handset B isunavailable or out of range. Thus, handset A will notify the user thathandset B is unavailable. This notification may be performed by handsetA by displaying of the ID and/or name of handset B, along with anappropriate message (e.g., “Unavailable”). In addition, handset A mayprompt the user as to whether the call should be attempted over anetwork. Following step S.1042, the procedure may terminate at stepS.1046, as shown in FIG. 32.

When a response from handset B is detected as being received over thededicated control channel, handset A will determine at step S.1040whether the user of handset B has responded to the call waiting requestby accepting the call. This determination may be made by analyzing theresponse message received from handset B. If the user of handset B hasaccepted the call, then at step S.1048 handset A will set up the call topermit the user of handset A to initiate conversation with the user ofhandset B. The free call between handset A and handset B may be set upon a new channel (through channel negotiation, etc.) or may be carriedout on the same channel that was utilized for the call between handset Band handset C (whereby handset A is notified of the channel of the callthrough the response message from handset B). In either case, handset Cwill be requested to hold the call and to wait for a re-contact requestfrom handset B over the dedicated control channel. Following stepS.1048, handset A may perform other handset functions at step S.1050,including listening for queries or requests on the dedicated controlchannel.

If it is determined at step S.1040 that the user of handset B hasresponded to the call waiting request by rejecting the call, then atstep S.1044 handset A will notify the user that the call has beenrejected. This notification may include displaying an appropriatemessage (e.g., “Call Rejected”), along with the ID and/or name ofhandset B. In addition, depending upon the manner in which the user ofhandset B has responded to the call waiting request, handset A mayprompt the user for various options (e.g., forwarding to a voice mailsystem or to a different handset or location). Following step S.1044,the procedure may terminate at step S.1046, as shown in FIG. 32.

As described above, FIG. 33 is an exemplary flowchart of the variousoperations and procedures that may be performed by handset B to handle acall waiting request form handset A, while on a call with handset C. Inparticular, after performing other handset functions at step S.1052,handset B determines at step S.1054 whether a call waiting request hasbeen received over the dedicated control channel. If a call waitingrequest has not been received, then logic flow proceeds back to stepS.1052 where handset B may perform other handset functions.

When a call waiting request is detected as being received at stepS.1054, handset. B will query the user to indicate that a call waitingrequest has been received at step S.1056. At step S.1056, handset B mayquery the user by displaying the ID and/or name of handset A to indicatethe source of the call waiting request. This query may also include thegeneration of an appropriate tone to alert the user of handset B, duringthe call with handset C, as to the presence of the call waiting request.At step S.1058, handset B determines whether the user has responded tothe call waiting request query. If the user of handset B ignores thequery, then logic flow will loop back to step S.1052. However, if theuser responds to the call waiting request, then at step S.1060 handset Bwill transmit a response message to handset A over the dedicated controlchannel based on the manner in which the user responded to the callwaiting request.

Depending on the manner in which the user of handset B has responded tothe call waiting request, handset B may cause a new call to beestablished with handset A or may maintain the call with handset C. Thatis, at step S.1062, handset B will determine whether the user hasdecided to respond to the call by accepting the call. If the user didnot decide to accept the call, then logic flow will loop back to stepS.1052 and the call with handset C will not be interrupted. However, ifthe user has indicated to accept the call (e.g., by pressing anappropriate key or button on the handset), then logic flow will proceedto step S.1064. At step S.1064, handset B will transmit to handset C acall hold request message. This request message may be transmitted overthe dedicated control channel or may be transmitted during a definedcontrol time slot on the channel supporting the call between handset Band handset C. As further discussed below, when handset C receives thehold request, handset C will place the call on hold and wait for are-contact request from handset B or a call request from anotherhandset.

Following step S.1064, handset B will set up the call to permit the userof handset B to initiate conversation with the user of handset A at stepS.1066. Once again, the call between handset B and handset A may bemaintained on the same channel that was used between handset B andhandset C, or handset B may negotiate a new or different channel withhandset A to set up the free call. Following step S.1066, handset B mayperform other handset functions at step S.1068, including listening forqueries or requests over the dedicated control channel.

With handset C placed in hold, the user of handset B may carry outcommunication with handset A and, when desired, switch back andre-contact with handset C. Thus, as represented at step S.1070, handsetB may periodically check whether the user of handset B has requested tore-contact with handset C. The determination at step S.1070 may be madebased on the detection of the activation of a predetermined key orbutton on the handset by the user. If a request to re-contact has beenmade by the user, then at step S.1072 handset B will transmit a holdrequest to handset A and then initiate a new call or re-contact requestto handset C at step S.1074. As a result, handset A will be placed onhold and the user of handset B may conduct a conversation with the userof handset C. Thereafter, the user of handset B can continue to switchbetween calls with handset A and handset C, and complete calls asdesired.

FIG. 34 is an exemplary flowchart of the various processes andoperations that may be carried out by handset C in accordance with thecall waiting features of the invention and that may be used inconnection with the embodiments of FIGS. 32 and 33. As represented atstep S.1076 in FIG. 34, handset C is in conversation with handset B,when handset B receives a call request from handset A. If the user ofhandset B determines to respond to the call waiting request, thenhandset B will put handset C on hold. Thus, at step S.1078, handset Cdetermines whether a hold request message has been received from handsetB. The hold request may be transmitted during a control time slot on thechannel supporting the call between handset B and handset C, or may betransmitted over the dedicated control channel. As discussed above withreference to the embodiment of FIG. 33, the hold request message fromhandset B may indicate a channel on which handset C is to wait and holdfor a further request from handset B. This channel may be apredetermined channel, such as the dedicated control channel, or anotherappropriate channel. If a hold request is not received at step S.1078,then logic flow loops back to step S.1076, where handset C performsother handset functions, including maintaining the call between handsetB and handset C.

If a hold request is received from handset B at step S.1076, thenhandset C will tune to the dedicated control channel and wait for are-contact request message for handset B or a call request from anotherhandset at step S.1080. If no call request has been received at stepS.1080, then at step S.1082 handset C will continue to perform otherhandset functions, including listening for other queries or requests(e.g., find queries, etc.). Handset C will also continue to, check atstep S.1080 whether a call request has been received.

When a call request has been received at step S.1080, then at stepS.1084 handset C determines whether the call request is from handset B.Specifically, handset C determines whether the request is a re-contactrequest from handset B. If the request is not from handset B, then atstep S.1086 handset C may receive the call request from the otherhandset while acting as a recipient of the call request. Variousprocedures and operations may be performed at step S.1086, such as thosedescribed above with reference to FIGS. 29, 31A, 31B, and/or 33. Thus,if the user of handset C decides to receive the call request andinitiate a conversation with the user of the other handset, then handsetC may negotiate a channel for the call (while acting as the receivingparty) with the other handset. If the user of handset C decides torefuse the call request, then logic flow will turn to step S.1080, wherehandset C again listens for call requests on the dedicated controlchannel.

If a re-contact request is received from handset B at step S.1084, thenat step S.1088 handset C will negotiate a channel for the call withhandset B to again establish the direct handset-to-handset communicationbetween handset B and handset C. After successfully negotiating achannel, the user of handset C may initiate a conversation with the userof handset B at step S.1090. Thereafter, at step S.1092, handset C mayperform other handset functions, including listening for other queriesor requests on the dedicated control channel.

Modifications to the embodiments of FIGS. 28-34 may be provided withoutdeparting from the main features and objects of the invention. Forexample, FIGS. 37 and 38 are exemplary flowcharts of the variousprocesses and operations that may be carried out by handset A andhandset B, respectively, to establish a free call through theutilization of a dedicated control channel. The embodiments of FIGS. 37and 38 incorporate call waiting features to permit a call request fromhandset A to be received even if handset B is on a call. In FIG. 37, itis assumed that handset A has initiated a call request and is attemptingto establish a direct handset-to-handset call with handset B. Further,for the embodiments of FIGS. 37 and 38 it is assumed that each handset Bincludes a separate tuner that is always tuned to a dedicated controlchannel. FIG. 38 illustrates the various operations and procedures thatmay be carried out by handset B when responding to the call request fromhandset A.

As represented at step S.1100 of FIG. 37, the call request procedure isinitiated when the user of handset A presses the appropriate key orbutton on the handset (e.g., the free call button) with handset B beingselected or dialed through the keypad and/or display screen of thehandset. Following step S.1100, handset A will transmit a call requestto handset B at step S.1102. The call request message may include the IDof handset A, as well as the ID of handset B to indicate the handset towhich the call request is directed. In addition, the call request may betransmitted from handset A to handset B over a dedicated controlchannel. As a result, handsets are not required to periodically registeron a registry channel and interruptions to calls (for registering, etc,)is eliminated.

Following step S.1102, handset A will set the value of a wait_clock to 0at step S.1104 and then wait for a response from handset B. Thewait_clock may be incremented in accordance with an internal systemclock of handset A and may be provided to determine if a response hasbeen received within a predetermined wait time. If a response is notreceived within the predetermined wait time, then handset A may assumethat handset B is unavailable or out of range.

At step S.1106, handset A will determine if a response to the callrequest has been received from handset B over the dedicated controlchannel. If no response is received, then at step S.1108 the value ofthe wait_clock is compared with the predetermined wait time. If thewait_clock is less than the wait time, then logic flow returns to stepS.1106 so that the receipt of a response from handset B may be checked.Otherwise, when the wait time has expired, logic flow proceeds from stepS.1108 to step S.1120, as illustrated in FIG. 37.

If a response message is received at step S.1106, then at step S.1110handset A determines the status of handset B (e.g., Idle or On Call).The determination at step S.1110 may be made based on status informationprovided in the response message from handset B. If handset B isdetermined to be on a call at step S.1110, then logic flow proceeds tostep S.114 where handset A waits to determine if the user of handset Bresponds to the call request from handset A. As further described belowwith reference to FIG. 38, if handset B detects a call request fromhandset A when handset B is on a call with another handset, handset Bmay automatically provide a call waiting notification to the user ofhandset B to alert the user of the presence of the call request fromhandset A. The user of handset B may then respond to the call requestfrom handset A by accepting the call request or rejecting the same. Ineither case, handset B may transmit a further response message tohandset A to indicate whether the call request has been accepted orrejected.

If it is determined at step S.1110 that handset B is not on a call, thenat step S.1112 handset A will then attempt to negotiate a channel withhandset B for establishing the call. Since handset A initiated the callrequest, handset A will act as the originating party when negotiating achannel with handset B. Various procedures and operations may beperformed for negotiating a channel, such as the exemplary embodimentfor negotiating a channel through the use of a dedicated controlchannel, as discussed above with reference to FIGS. 30A and 30B. InFIGS. 30A and 30B, handset A negotiates a channel with handset B, whilehandset A acts as the originator. Following the successful selection ofa channel, logic flow proceeds to step S.1114 and handset A then awaitsfor a response from handset B to determine whether the user of handset Bhas responded and accepted the call request.

As further illustrated in FIG. 37, handset A may initialize and set thevalue of the wait_clock to 0 at step S.1114 and then determine at stepS.1116 whether a response message from handset B has been received.Handset A may monitor and listen to the dedicated control channel for apredetermined wait time to receive a response from handset B. Thus, if aresponse is not received at step S.1116, handset A will determine atstep S.1118 whether the value of the wait_clock is greater than or equalto the wait time. If the wait time has not elapsed, then logic flowloops back to step S.1116 where handset A again determines whether aresponse has been received.

If a response from handset B has not been received within thepredetermined wait time, then at step S.1120 handset A assumes thathandset B is unavailable or out of range. As such, handset A will notifythe user that handset B is unavailable. This notification may beperformed by displaying the ID and/or name of handset B along with anappropriate message (e.g., “Unavailable”). In addition, at step S.1120handset A may prompt the user as to whether the call should be attemptedthrough the use of a network. If the user decides to place a networkcall, then handset A may place a network call to handset B usingconventional methods or techniques. Following step S.1120, the proceduremay terminate at step S.1122.

If a response from handset B is received over the dedicated controlchannel at step S.1116, then at step S.1124 handset A determines whetherthe user of handset B has accepted the call. The determination at stepS.1124 may be made by evaluating the response message received fromhandset B. The response message may indicate whether, the user ofhandset B has responded to the call by accepting the call or byrequesting special handling of the call (e.g., by transferring to avoice mail system or call forwarding). If it is determined at stepS.1124 that the user of handset B has decided to accept the call, thenat step S.1128 handset A permits the user to initiate a conversationwith the user of handset B. In addition, at step S.1130, handset Aproceeds by performing other handset functions, including listening forqueries or requests over the dedicated control channel.

If it is determined at step S.1124 that the user of handset B hasresponded to the call without accepting the call, then at step S.1126handset A notifies the user that the call has been rejected. Thisnotification may take the form of displaying an appropriate message(e.g., “Call Rejected”). In addition, depending on the response fromhandset B and the manner in which the user of handset B has responded tothe call request, handset A may also prompt the user for various options(e.g., transferring to the voice mail system of handset B or forwardingthe call to another handset or location). Following step S.1126, theprocedure may terminate at step S.1122.

As indicated above, FIG. 38 is an exemplary flowchart of the variousprocesses and operations and may be carried out by handset B whenresponding to a call request from handset A over a dedicated controlchannel. In particular, following the performance of other handsetfunctions at step S.1.140, handset B may determine at step S.1142whether a call request has been received over the dedicated controlchannel. For this purpose, handset B may have a separate tuner thatconstantly listens and monitors the dedicated control channel for callrequests. Handset B may perform this function simultaneously with theperformance of other handset functions. If a call request is notreceived, then logic flow loops back to step S.1140. Otherwise, if acall request has been received at step S.1142, then logic flow proceedsto step S.1144, as shown in FIG. 38.

At step S.1144, handset B transmits a response message to handset A toconfirm the receipt of the call request. As indicated above with respectto FIG. 37, the response message may include status information toindicate to handset A the status of handset B (e.g., Idle or On Call).After transmitting the response message at step S.1144, handset Bnotifies or queries the user of handset B of the receipt of the callrequest from handset A. This notification may include generating anappropriate tone and/or displaying a message including the ID and/orname of handset A. The type of notification that is provided may dependon the status of handset B. If handset B is not on a call, an audibleringing tone may be provided, as well as displaying an appropriatemessage with the ID of handset A. If, however, handset B is on a call, aquick or periodic beep tone may be provided in the earpiece of thehandset to notify the user of the call waiting request. An appropriatemessage with the ID of handset A may also be displayed to the user ofhandset B during the call, so that the user can determine where the callrequest originated and whether to accept the new call.

After providing the query to the user at step S.1146; handset B performsadditional operations depending on the status of the handset. That is,if it is determined at step S.1148 that handset B is on a call thenlogic flow proceeds to step S.1152, to determine if the user responds tothe call request. If, however, it is determined at step S.1148 thathandset B is not on a call, then logic flow proceeds to step S.1150. Atstep S.1150, handset B negotiates a channel for setting up the call withhandset A. Since handset B has received the call request that wasinitiated by handset A, handset B acts as the receiving party whennegotiating the channel. Various procedures and operations may beperformed by, handset B to negotiate a channel with handset A, such asoperations of the exemplary embodiment of FIGS. 31A and 31B. In theembodiment of FIGS. 3A and 31B, handset B negotiates a channel withhandset A, while handset B acts as the receiving party. Following thesuccessful negotiation of a channel for the call, handset B will thendetermine if the user wishes to respond to the call request from handsetA at step S.1152.

As illustrated in FIG. 38, at step S.1152 handset B will determinewhether the user has responded to the call request. This determinationmay be made by determining whether one or more appropriate keys orbuttons on the handset have been pressed by the user to respond to thecall request. If the user of handset B does not respond to the callrequest, then logic flow loops back to step S.1140 from step S.1152.However, if the user of handset B does respond to the call request, thenat step S.1154 handset B will transmit an appropriate response messageto handset A over the dedicated control channel based on the manner inwhich the user responded to the call request. As discussed above, theresponse message from handset B may indicate whether the user of handsetB has responded to the call by accepting the call or by rejecting thecall and requesting specialized handling of the call (i.e., forwardingto a voice mail system or to a different handset or location).

Further, handset B will respond depending on whether the user hasaccepted the call. That is, if it is determined at step S.1156 that theuser has not accepted the call, then logic flow will proceed back tostep S.1140. However, if the user has accepted the call, then logic flowwill proceed from step S.1156 to step S.1158. At step S.1158, handset Bwill permit the user to initiate a conversation with the user of handsetA by supporting the call over the negotiated channel. In addition, atstep S.1160 handset B will perform other handset functions, includinglistening for queries or requests over the dedicated control channel.

While the invention has been described with reference to exemplaryembodiments, it is understood that the words which have been used hereinare words of description and illustration, rather then words oflimitation. Changes may be made, within the purview of the appendedclaims, as presently stated and as amended, without departing from thescope and spirit of the invention in its various aspects.

For example, group lists of beeping clips may be defined in the handsetso that a user may page (with or without a beep request) each clip inthe group list with a single. CALL function. In such a case, the usermay select a predefined group list of clips and then press the CALLbutton on the handset. In response, the handset may then page each clipin the group list and provide information to the user (e.g., via thehandset display) as each clip is paged. Such a feature may facilitate auser in locating a group of items (such as tools, pets, children, etc.)with a simple activation of the CALL function.

In addition, modifications may be made to the disclosed embodiments ofthe invention in order to reduce collisions or interferences. Forinstance, for each of the embodiments of the invention that utilize aregistry, the predetermined cycle time for registering may be reset to arandom number (e.g., between 0 and y minutes or seconds) after eachregistration. By changing the cycle time in this manner, two handsetsthat are out of range of one another but both in range of a thirdhandset can avoid colliding with one another more than once.

Other modifications to the disclosed embodiments of the invention mayalso be made. For example, modifications may be made so that thewireless handsets do not need to sequentially register during a freecall. That is, one handset could register for both handsets on the freecall by transmitting its own ID and channel number first, and thentransmitting the ID of the other handset and the channel number tocontact the other handset. In addition, the wireless handset of thepresent invention may be provided with call-waiting features. Forinstance, where a control time slot is defined (see, e.g., theembodiments of FIGS. 1A and 1B and FIGS. 12A and 12B), the control timeslot may be utilized to transmit a call-waiting signal. Such acall-waiting signal may comprise Caller ID information and/or thefrequency or number at which to contact the calling party (which mayinclude other wireless handset users).

Although the invention has been described herein with reference toparticular, means, materials and embodiments, the invention is notintended to be limited to the particulars disclosed herein. Instead, theinvention extends to all functionally equivalent structures, methods anduses, such as are within the scope of the appended claims.

What is claimed is:
 1. A wireless communication apparatus including: adetector configured to detect a find message configured to elicit aresponse from one or more objects and received directly from anotherelectronic apparatus within a short-range communication range of thewireless communication apparatus, wherein the find message includes atleast an indication of an identity of the other electronic apparatus,and wherein the find message includes an identification of an identityof the wireless communication apparatus; and a wireless transmitterconfigured to transmit within the short-range communication range of thewireless communication apparatus; wherein the wireless communicationapparatus is configured to determine if the other electronic apparatusis on a privacy list of the electronic apparatus and to block the findmessage if the other electronic apparatus is on the privacy list, and tootherwise generate a response to the find message, indicating at leastan identification of the wireless communication apparatus, and transmitthe response directly to the other wireless communication apparatususing the wireless transmitter.
 2. The wireless communication apparatusof claim 1, wherein the apparatus further includes a control systemconfigured to add to or delete from or add to and delete from theprivacy list user-identified wireless communication apparatuses.
 3. Thewireless communication apparatus of claim 2, wherein the control systemis further configured to perform operations to determine if the otherelectronic apparatus is on the privacy list of the electronic apparatusand to block the find message if the other electronic apparatus is onthe privacy list, and to otherwise generate the response to the findmessage.
 4. The wireless communication apparatus of claim 3, wherein thecontrol system is further configured to permit the identity of the otherelectronic apparatus to be recorded in the wireless communicationapparatus on a found list if the other electronic apparatus is not onthe privacy list.
 5. The wireless communication apparatus of claim 1,wherein the response to the find message includes an identification ofthe wireless communication apparatus.
 6. A method of operating awireless communication apparatus, the method comprising: detecting afind message configured to elicit a response from one or more objectsand received directly from another electronic apparatus within ashort-range communication range of the wireless communication apparatus,wherein the find message includes at least an indication of an identityof the other electronic apparatus, and wherein the find message includesan identification of an identity of the wireless communicationapparatus; determining if the other electronic apparatus is on a privacylist of the electronic apparatus; and blocking the find message if theother electronic apparatus is on the privacy list, and otherwisegenerating a response to the find message, indicating at least anidentification of the wireless communication apparatus, and transmittingthe response directly to the other electronic apparatus using ashort-range transmission apparatus of the wireless communicationapparatus.
 7. The method of claim 6, further comprising adding to ordeleting from or adding to and deleting from the privacy listuser-identified wireless communication apparatuses.
 8. The method ofclaim 6, wherein the response to the find message includes anidentification of the wireless communication apparatus.
 9. The method ofclaim 6, further comprising recording the other electronic apparatus ona found list of the wireless communication apparatus if the otherelectronic apparatus is not on the privacy list.